我想用Numba在GPU上运行我的python代码,所以我安装了Anaconda,最新版本(4.6.12 with 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是的,您可以自行导入当前模块 - 但通常不建议...