gpt4 book ai didi

python - 你如何将 bz2 分配给 python 的 altinstall?

转载 作者:太空狗 更新时间:2023-10-30 02:12:43 26 4
gpt4 key购买 nike

我使用的是自动安装 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

所以,我已经阅读了这些问题: Already installed还有这个very good one , 但这些似乎都不是很正确。在第一种情况下,建议是安装缺少的部分,第二个问题是删除(或停止引用)额外的 python 安装。

我想做的是放入一个符号链接(symbolic link)或类似的东西,以便 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

我仍然被难住了,但我觉得我正在接近。

我真的可以使用具有更多编程环境设置经验的人的一些输入。我更愿意写代码:)

最佳答案

昨天刚刚在同一个平台上做了这个并且让它工作了。这是我所做的:

设置 CFLAGS="-I/path/to/bz2/include"LDFLAGS="-L/path/to/bz2/lib"。确保在 LD_LIBRARY_PATH 中设置了 bz2 库路径。不过,您可能需要执行 make distcleanconfigure && make && make install

如果还是不行,直接编辑setup.py,进行类似下面的替换:

# Gustavo Niemeyer's bz2 module.
if (self.compiler.find_library_file(['/home/someuser/packages/libbz2/lib'], 'bz2')): #lib_dirs, 'bz2')):

请注意,第二行末尾的注释部分是 setup.py 行的原始其余部分。

此外,我发现只需下载并构建最新版本的 bz2 并将以上所有内容指向这一点,这比尝试让系统安装的版本工作更容易。

无论如何,这绝对有效。我昨天做的:)

关于python - 你如何将 bz2 分配给 python 的 altinstall?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13915137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com