我正在使用自带Python 2.4的Redhat 5.8版本,但是我需要使用一个要求Python 2.6或更高版本的Python包。因此,我安装了Python 2.7与2.4并存,以免破坏系统版本。
现在,我正尝试通过pip安装一个包,但出现以下错误:
CompressionError: bz2 module is not available
然而,我在我的电脑上有该模块,当我这样做时,服务器版本会给出:
[~]$ python -c "import bz2; print bz2.__doc__"
The python bz2 module provides a comprehensive interface for
the bz2 compression library. It implements a complete file
interface, one shot (de)compression functions, and types for
sequential (de)compression.
并且2.7安装以这种方式出现错误:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
所以,我已经阅读了这些问题:已安装和这个非常好的一个, 但是这两个都不太合适。在第一种情况下,建议安装缺失的部分,在第二个问题中,要删除(或停止引用)额外的python安装。
我想做的是放置一个符号链接或类似的东西,以便python 2.7安装知道bz2在哪里,这样我就可以使用pip来安装python包。
谢谢, B
编辑:更多信息
经过大量研究,似乎在Python 2.5中建立路径变量的方式发生了巨大变化(可能是为什么Red Hat没有更新的原因)。
所以,在Python 2.7中,您可以通过在此文件夹中添加一个扩展名为.pth的文件来添加PYTHONPATH变量:
/usr/local/lib/python2.7/site-packages/
我已经尝试了两种方法来使其正常工作。
首先,我只是将一些 Python 2.4 路径文件提供给了 2.7。这导致了不同类型的错误:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: /usr/lib64/python2.4/lib-dynload/bz2.so: undefined symbol: Py_InitModule4
好的,我会尽力而为。
我还尝试将路径指向/usr/lib/目录中的libbz2.so文件,但结果是熟悉的错误:
[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named bz2
我仍然感到困惑,但我觉得我正在接近答案。
我真的需要一些有经验的编程环境设置人员的建议。我更喜欢只编写代码 :)