我是python的新手,所以我很抱歉,如果已经在其他地方用我没有想过的标签回答了这个问题。
我正在尝试将numpy从我现在的1.6版本更新为1.8。我在我的python site-packages中安装了numpy,当我调用numpy时,它调用旧的1.6版本。我已经尝试寻找根到numpy 1.6所以我可以删除它,但这导致: -
import numpy
print numpy.__version__
print numpy.__file__
>>>
1.6.2
V:\Brian.140\Python.2.7.3\lib\site-packages\numpy\__init__.pyc
我使用以下方法将包含模块的文件夹添加到系统路径: -
sys.path.append('C:/Python27/Lib/site-packages')
我知道这可行,因为我可以在此位置调用其他模块而没有错误,例如: -
import wx
import Bio
和
import nose
不产生任何错误。为什么会发生这种情况?如何告诉python使用哪个版本的numpy?
您还可以将目录插入路径的开头,因此您不需要删除旧目录:
sys.path.insert(1, 'C:/Python27/Lib/site-packages')
如果您已导入模块,那将无效。您可以在sys.path.insert命令之后导入它,也可以使用importlib.reload(module_name)
这是一个非常混乱的解决方案,可能不应该鼓励,但我发现,如果我从系统路径中删除旧版本numpy的位置,我可以调用我想要的版本。具体路线是: -
import sys
sys.path.append('C:/Python27/Lib/site-packages')
sys.path.remove('V:\\\Brian.140\\\Python.2.7.3\\\Lib\\\site-packages')
import numpy
Force python to use an older version of module (than what I have installed now)提到了一个通用的解决方案:
import pkg_resources pkg_resources.require("numpy==`1.16.2") # modified to use specific numpy import numpy