Python的bz2模块默认不编译

时间:2009-05-01 19:03:51

标签: python c compiler-construction

似乎Python 2.6.1默认情况下不会从源代码编译bz2库。

我没有lib-dynload / bz2.so

添加它的最快方法是什么(不从头开始安装Python)?

操作系统是Linux 2.4.32-grsec + f6b + gr217 + nfs + a32 + fuse23 + tg +++ opt + c8 + gr2b-v6.194#1 SMP Tue Jun 6 15:52:09 PDT 2006 i686 GNU / Linux的

IIRC我只使用了--prefix flag。

4 个答案:

答案 0 :(得分:32)

首先需要正确安装libbz2.so(通用libbz2库),以便Python能够构建自己的接口。这通常来自Linux发行版中的软件包,可能在软件包名称中包含“libbz2”和“dev”。

答案 1 :(得分:24)

使用供应商的软件包管理添加包含bz2开发文件的软件包。它通常是一个名为“libbz2-dev”的软件包。例如。在Ubuntu上

sudo apt-get install libbz2-dev

答案 2 :(得分:17)

这种麻烦有两种解决方案:

选项1.安装bzip2-devel

在Debian和衍生品上,您可以像这样轻松安装:

sudo apt-get install bzip2-devel

选项2.构建并安装bzip2

bzip2 package的README文件中,解释了在某些平台下,即那些使用Linux-ELF二进制文件的平台,你必须构建一个额外的共享对象文件,如下所示:

wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xpzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make
make -f Makefile-libbz2_so
make install PREFIX=/path/to/local # /usr/local by default

这里的关键位是以下命令:

make -f Makefile-libbz2_so

我已经完成了这个,之后再次尝试构建Python,如下所示:

cd Python-2.7.3
./configure --prefix=/path/to/local 
make install

答案 3 :(得分:8)

如果您正在尝试在RHEL5上编译Python,则该程序包称为 bzip2-devel ,如果您设置了RHN,则可以使用此命令进行安装:

  

yum install bzip2-devel

完成后,您不需要--enable-bz2或--with-bz2选项,但您可能需要--enable-shared。