我想使用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
重新安装模块,但是仍然出现错误。
答案 0 :(得分:1)
Python import
在不同的位置查找匹配的模块。 (非常简化的)顺序是(1)内置C模块(例如sys
)(2)当前目录(3)内置模块和已安装软件包 1 。>
与您的情况相关的是,Python在当前目录中找到了一个numba
模块(您的numba.py
2 ),它没有寻找已安装的{{ 1}}模块。因此,将numba
文件重命名为其他名称就足够了,例如numba.py
(并从my_numba.py
目录中删除相应的文件)。
通常,如果您怀疑导入了错误的模块,则可以始终检查__pycache__
属性(大多数模块都具有该属性)并检查其是否为预期的路径:
__file__
1 实际上,它要复杂得多,而且还可以自定义很多,但这在这里实际上并不重要。
2 是的,您可以自己导入当前模块-但通常不建议这样做...