你如何分配BZ2到Python的altinstall?(How do you assign bz2

2019-07-05 13:44发布

我使用的是RedHat 5.8,这与Python自动安装2.4,但我使用的是需要Python 2.6或更高的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 2.7版安装知道在哪里BZ2是这样,我可以使用画中画安装Python包。

谢谢,B


编辑:了解更多信息

所以,经过反复研究,看来路径变量确立的方式在Python 2.5(可能就是为什么Red Hat已经没有更新)发生了巨大变化。

因此,在Python 2.7,你可以通过添加与该文件夹中.pth扩展名的文件添加到PYTHONPATH变量:

/usr/local/lib/python2.7/site-packages/

我曾尝试2种方法来得到这个正常工作。

首先,我简单地喂一些蟒蛇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

所以,这件事情。

我也尝试过的路径指向libbz2.so文件在/ usr / lib中/这就造成了熟悉的错误:

[~]$ python2.7 -c "import bz2; print bz2.__doc__"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named bz2

我还是难倒了,但我觉得我参与的关闭。

我真的可以使用一些输入由更有经验的人设置的编程环境。 我更舒服只是写代码:)

Answer 1:

就在昨天做了同样的平台上,得到它的工作。 这是我做的:

设置CFLAGS="-I/path/to/bz2/include"LDFLAGS="-L/path/to/bz2/lib" 。 确保BZ2库路径在您设置LD_LIBRARY_PATH 。 你可能会需要做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和指点上述所有的到更容易比试图让系统安装的版本工作。

无论如何,这肯定的作品。 我昨天做了:)



Answer 2:

任何你与比系统安装之外的其他蟒蛇的工作时间,我强烈建议使用http://pypi.python.org/pypi/virtualenv 。 它建立了一个“沙箱”为你自己的蟒蛇的副本,并重新进行所有的路径,等来点新的副本。 然后,可以使用画中画安装任何你需要的包。



Answer 3:

所提供的其他的答案是有用的,有益的,但是这是我得到了这个工作。

问题是不是Python的是没有找到文件(我认为),它只是不能正确地使用它们。 所以,我vi'ed到Makefile中的bzip2,发现看起来像这样的一行:

CFLAGS= -Wall -Winline -O2 -g $(BIGFILES)

并加入到-fPIC像这样的行:

CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES)

和WHALA! 它编译就好了。



文章来源: How do you assign bz2 to an altinstall of python?