我正在使用自动安装 python 2.4 的 redhat 5.8,但我使用的 python 包需要 python 2.6 或更高版本。所以,我在2.4旁边安装了python 2.7,以免踩到系统版本。
现在,我试图通过 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 包。
谢谢,乙
编辑:更多信息
因此,经过大量研究,python 2.5 中路径变量的建立方式似乎发生了巨大变化(可能是 red hat 没有更新的原因)。
因此,在 python 2.7 中,您可以通过在此文件夹中添加扩展名为 .pth 的文件来添加到 PYTHONPATH 变量:
/usr/local/lib/python2.7/site-packages/
我已经尝试了 2 种方法来让它正常工作。
首先,我只是将一些 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
我仍然很难过,但我觉得我快要接近了。
我真的可以使用具有更多设置编程环境经验的人的一些输入。只写代码我更舒服:)