【问题标题】:Numba module is empty in anacondaanaconda 中的 Numba 模块为空
【发布时间】:2019-04-13 18:33:43
【问题描述】:

我想使用 Numba 在 GPU 上运行我的 python 代码,所以我安装了 Anaconda,最后一个版本(4.6.12 和 Python 3.7)。我试图从 numba 加载函数 vectorize:

from numba import vectorize

但我得到了错误代码:

ImportError: cannot import name 'vectorize' from 'numba' 

模块已安装,导入时没有报错,但是当我像这样使用dir(numba) 命令时:

import numba

print(dir(numba))

我明白了:

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'numba']

我尝试使用命令conda install numba --force-reinstall 重新安装模块,但仍然出现错误。

【问题讨论】:

  • 你在那个目录中有一个名为numba.py的文件吗?
  • 是的,文件名是 numba.py。哦。我想我现在明白了。

标签: python anaconda python-import numba


【解决方案1】:

Pythons import 在不同的位置寻找匹配的模块。 (非常简化的)顺序是(1)内置 C 模块(例如sys)(2)当前目录(3)内置模块和安装包1

与您的情况相关的是,Python 在当前目录中找到了一个 numba 模块(您的 numba.py 2),它没有寻找已安装的 numba 模块。因此,将 numba.py 文件重命名为其他名称就足够了,例如my_numba.py(并从__pycache__目录中删除对应的文件)。

一般来说,如果你怀疑你导入了错误的模块,你可以随时检查__file__属性(大多数模块都有它)并检查它是否是预期的路径:

import numba
print(numba.__file__)

1其实要复杂很多,也可以自定义很多,不过这里其实不相关。

2 是的,您可以自行导入当前模块 - 但通常不建议这样做...

【讨论】:

    猜你喜欢
    • 2020-02-12
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2017-04-04
    • 2016-05-24
    相关资源
    最近更新 更多