我如何'强迫'python使用特定版本的模块?

问题描述 投票:4回答:3

我是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?

python python-2.7 numpy module updating
3个回答
3
投票

您还可以将目录插入路径的开头,因此您不需要删除旧目录:

sys.path.insert(1, 'C:/Python27/Lib/site-packages')

如果您已导入模块,那将无效。您可以在sys.path.insert命令之后导入它,也可以使用importlib.reload(module_name)


2
投票

这是一个非常混乱的解决方案,可能不应该鼓励,但我发现,如果我从系统路径中删除旧版本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

1
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.