已安装的python 2.7.3和我的所有库都在python 2.6上。

时间:2012-04-19 08:20:31

标签: python path

我安装了2.7.3版本,无论何时输入:

import numpy

我收到一条错误消息,说我没有安装它。但是当我运行python 2.6时,它会很好地导入它。我以前的所有库都会出现同样的情况:scipy,numpy,cv,cv2,networkx。我认为这与切换新默认版本的python库路径有关。我该怎么做?

4 个答案:

答案 0 :(得分:4)

您必须为每个python版本单独安装库。这些库不是共享的,不应在不同版本的python之间共享。

答案 1 :(得分:3)

Python sys.path将包含导入库所需的路径列表,如果您确信python2.6中安装的库可以在python2.7中运行,则需要每次加载解释器时都会更新sys.path

如果您使用的是GNU / Linux,可以将导出PATH=/path/to/py2.6/library:$PATH添加到〜/ .bashrc。

建议使用pip并在python2.7中安装所有库。

http://www.pip-installer.org/en/latest/index.html

自安装python2.7python2.6后,请在安装库时小心使用它们。

[EDIT]

$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

并相应地开始使用pip-2.7pip

答案 2 :(得分:1)

如果您下载numpy源,解压缩并cd到numpy目录,并键入(以root身份)

python2.7 setup.py install 

python 2.7将在自己的区域中安装numpy。同样适用于您提到的其他模块。

问题是大多数安装程序只会查找python,它与默认情况下Ubuntu安装使用的链接相关联。理论上你可以做类似

的事情
sudo cp -f $(which python2.7) $(which python)

覆盖此链接,但覆盖系统默认的python安装是一个非常坏主意,几乎肯定会破坏某些东西。

答案 3 :(得分:1)

我对CentOS 6有这个问题,因为它使用python 2.6作为系统,而Yum依赖于它。我的解决方法是暂时将/usr/bin/python二进制文件重命名为其他内容(例如/usr/bin/orig-python)。然后我建立了python 2.7安装的链接:

ln -s /usr/local/bin/python2.7 /usr/bin/python

瞧,它完美无缺。

这适用于你有一个不会在你的$PATH中进行设置的顽固程序,因为通常你应该能够执行正确的python,如果在你的路径中配置它。