1

我正在使用 Ubuntu。我安装了更新版本的python。但是我安装的所有库,如 imdbPy、NumPy、Cython 等都可以在版本号为 2.6.6 的以前版本的 python 中运行。

当我在 2.6.6 中导入 Cython 时,tt 可以工作,但我在 2.7.0+ 版本的 python 中尝试了同样的事情

import cython

出现如下错误:

import cython
ImportError: No module named cython

我需要的是更改 bash 中使用的 python 的默认版本。我想,我可以通过修改 bash 配置文件来处理它。我还想将所有这些库移动到适当的位置,以便新版本的 python 可以永久访问它们。

4

4 回答 4

2

不要弄乱您的系统安装 - 包管理器应该对此负责。确保从源代码安装时,在单独的目录中进行。

我在我的主目录中安装东西。我喜欢 jhbuild,所以这是我用来并排维护不同版本的 python 的:https ://thomas.apestaart.org/thomas/trac/browser/jhbuild/python

从该结帐处运行 make 将构建 python 2.3-2.7 并创建脚本以进入其环境:

[thomas@level ~]$ py-2.4 
Entering interactive py shell /bin/bash
[py-2.4] [thomas@level ~]$ python
Python 2.4.5 (#1, Dec 16 2010, 18:51:06) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
于 2011-01-24T13:14:11.950 回答
0

您需要重新安装新版本的所有库。

我建议您首先下载 pip 并安装它。之后,您可以安装大多数软件包/path/to/Python27/bin/pip install <packagename>,例如

/opt/python27/bin/pip install Cython
于 2011-01-24T12:19:23.250 回答
0

尝试使用setuptools重新安装库。实际上,我建议重新安装而不是尝试在 Python 2.7 中使用旧的 2.6 库,因为可能存在一些不兼容。

于 2011-01-24T11:41:43.223 回答
0

显然,一个包管理工具是要走的路,因为他们应该能够设置我将要提到的所有东西(加上检查兼容性和依赖关系)但是如果你遇到任何问题,这里有一些东西可能会有所帮助您选择的包管理器:

在进行更改之前,请PATH使用echo $PATHin bash 进行检查。目录按搜索顺序列出。

您可以通过更改目录的顺序来确定在 bash 中使用哪个版本的 python,以便PATH您想要的版本首先出现在PATH.

例如,如果你想要一个 python 版本opt/local/bin而不是一个 in usr/local/bin,你可以PATH在你的.bash_profileor.bashrc文件中设置这样的一行:

export PATH=opt/local/bin:$PATH

您可以使用以下命令检查 python bash 的文件路径:( which python在 bash 中输入)

至于库,请确保PYTHONPATH在bash和sys.pathpython中设置正确,以便它可以找到合适的库,并使用更新和兼容的版本而不是旧的。您还可以创建 .pth 文件,其中包含要添加到的目录的路径sys.path,并且可以PYTHONSTARTUP在 bash 中使用以在启动时运行设置sys.path.

除非您在特定的 python 版本的单独文件夹中有一组全新的库,否则您可能会遇到问题,特别是因为许多库将依赖其他库,因此可能会使用彼此的过时版本。

如果您有多个模块sys.path使用相同的名称,它们可能会发生冲突。

你可以检查你导入的python模块的目录路径,如下所示:

import Cython
print Cython.__file__

希望所有这些都将由您选择的包管理器处理,但如果遇到麻烦,您至少可以仔细检查您的路径。

于 2011-01-24T13:46:14.690 回答