Python的bz2模块默认未编译
看起来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 2006年6月6日 星期二 15:52:09 PDT i686 GNU/Linux。
如果我没记错的话,我只用了--prefix这个参数。
4 个回答
20
这个问题有两种解决办法:
选项 1:安装 bzip2-devel
在 Debian 及其衍生版本上,你可以很简单地这样安装:
sudo apt-get install bzip2-devel
选项 2:构建并安装 bzip2
在 bzip2 包 的 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
30
使用你所用的系统的包管理工具来添加包含bz2开发文件的包。这个包通常叫做“libbz2-dev”。比如在Ubuntu系统上,你可以这样做:
sudo apt-get install libbz2-dev
35
首先,你需要先正确安装libbz2.so这个库(这是一个通用的libbz2库),这样Python才能建立自己的接口来使用它。通常,你可以在你的Linux系统的软件包中找到这个库,包名里一般会包含“libbz2”和“dev”。