【问题标题】:Datatable installation from github failing to find the version从 github 安装数据表找不到版本
【发布时间】:2020-03-08 23:55:15
【问题描述】:

我已经从 repo 卸载并重新安装了最新版本的 datatable

16:42:49/seirdc2.March8.in $sudo pip3 install 'datatable==0.10.1' 
Successfully installed datatable-0.10.1

让我们看看版本:

import datatable as dt
print(f'datatable version={dt.__version__}')

哎呀

Traceback (most recent call last):
  File "/git/corona/python/pointr/experiments/python/datatable.py", line 18, in <module>
    import datatable as dt
  File "/git/corona/python/pointr/experiments/python/datatable.py", line 19, in <module>
    print(f'datatable version={dt.__version__}')
AttributeError: module 'datatable' has no attribute '__version__'

但是为什么呢?

注意:我看到这个包的其他奇怪之处:例如没有找到 Frame - 虽然不一致。

【问题讨论】:

    标签: python h2o py-datatable


    【解决方案1】:

    看来问题与数据表无关。看回溯:

    Traceback (most recent call last):
      File "/git/corona/python/pointr/experiments/python/datatable.py", line 18, in <module>
        import datatable as dt
      File "/git/corona/python/pointr/experiments/python/datatable.py", line 19, in <module>
        print(f'datatable version={dt.__version__}')
    AttributeError: module 'datatable' has no attribute '__version__'
    

    第 18 行“调用”第 19 行是不是让您感到怀疑?我的意思是,怎么可能?方法如下:

    当您将脚本命名为 datatable.py 然后执行 import datatable 时,它不会从站点包导入实际模块,而是导入“模块”datatable.py。基本上,文件会自行导入。而python管理导入的方式是它首先在sys.modules中创建一个“存根”模块(为了防止导入期间的无限递归)。在您的情况下,模块尝试导入自身,因此取而代之的是存根模块 - 然后当您尝试打印其 __version__ 变量时,结果发现它不存在。

    您可以通过打印 dt.__file__ 来验证这一点,这应该会显示正在导入的文件的位置。

    不用说,所有这些都不是特定于数据表的;例如,如果你创建了一个文件numpy.py,然后尝试import numpy,你会遇到同样的问题。

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2012-08-19
      • 1970-01-01
      相关资源
      最近更新 更多