Numba 模块在 anaconda 中是空的

Numba module is empty in anaconda

我想使用 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 重新安装模块,但仍然出现错误。

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 是的,您可以自己导入当前模块 - 但通常不建议这样做...