我正在使用Ubuntu。我安装了较新版本的python。但我所有已安装的库(如imdbPy,NumPy,Cython等)都可以在以前版本的python中运行,其版本号为2.6.6。
当我在2.6.6中导入Cython时,tt有效,但我在2.7.0+版本的python中尝试相同的东西
import cython
发生如下错误:
import cython
ImportError: No module named cython
我需要更改bash中使用的python的默认版本。我想,我可以通过修改bash配置文件来处理它。我还希望将所有这些库移动到适当的位置,以便新版本的python可以永久地访问它们。
答案 0 :(得分:2)
不要搞乱你的系统安装 - 包管理器应该对此负责。确保从源代码安装时,可以在单独的目录中执行此操作。
我在我的主目录中安装东西。我喜欢jhbuild所以这就是我用来并排维护不同版本的python:https://thomas.apestaart.org/thomas/trac/browser/jhbuild/python
从该checkout运行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.
>>>
答案 1 :(得分:0)
尝试使用setuptools重新安装库。实际上,我建议重新安装而不是尝试在Python 2.7中使用旧的2.6库,因为可能存在一些不兼容性。
答案 2 :(得分:0)
您需要重新安装新版本的所有库。
我建议你先下载pip并安装它。之后,您可以使用/path/to/Python27/bin/pip install <packagename>
安装大多数软件包,例如
/opt/python27/bin/pip install Cython
答案 3 :(得分:0)
在进行更改之前,请在bash中使用PATH
检查echo $PATH
。目录按搜索顺序列出。
您可以通过更改PATH
中目录的顺序来确定bash中使用的python版本,以便您想要的版本首先出现在PATH
中。
例如,如果您想要opt/local/bin
中的python版本而不是usr/local/bin
中的python版本,则可以在PATH
或.bash_profile
文件中设置.bashrc
用这样的一行:
export PATH=opt/local/bin:$PATH
您可以检查python bash使用的文件路径:
which python
(在bash中输入)
对于库,确保正确设置bash中的PYTHONPATH
和python中的sys.path
,以便它可以找到适当的库,并使用更新的兼容版本而不是旧版本。您还可以创建包含要添加到sys.path
的目录的路径的.pth文件,并且可以在bash中使用PYTHONSTARTUP
在启动时运行模块sys.path
。
除非在特定版本的python的单独文件夹中有一组全新的库,否则可能会遇到问题,特别是因为许多库将依赖于其他库,因此可能会使用彼此过时的版本。
如果sys.path
上有多个使用相同名称的模块,则可能会发生冲突。
您可以检查已导入的python模块的目录路径,如下所示:
import Cython
print Cython.__file__
希望所有这些都由您选择的包管理员处理,但如果您遇到麻烦,至少可以仔细检查您的路径。