我怎么强迫' python使用特定版本的模块?

时间:2014-03-21 17:24:10

标签: python python-2.7 numpy module updating

我是python的新手,所以如果我已经在其他地方使用我无法想到的标签回答道歉,我会道歉。

我试图将numpy从我现在的1.6版本更新为1.8。我在我的python site-packages中安装了numpy,当我调用numpy时,它调用旧的1.6版本。我已经尝试寻找root来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?

3 个答案:

答案 0 :(得分:3)

您也可以将目录插入路径的开头,这样您就不需要删除旧目录了:

ScrollableAppBar appBarLayout = (ScrollableAppBar) findViewById(R.id.appbar);

//To give the effect "in the middle" of the image (like gif)
appBarLayout.collapseToolbar();

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

答案 1 :(得分: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

答案 2 :(得分: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