Python's bz2 module not compiled by default

Question:

It seems that Python 2.6.1 doesn’t compile bz2 library by default from source.

I don’t have lib-dynload/bz2.so

What’s the quickest way to add it (without installing Python from scratch)?

OS is 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 I used only –prefix flag.

Asked By: Piotr Byzia

||

Answers:

You need libbz2.so (the general purpose libbz2 library) properly installed first, for Python to be able to build its own interface to it. That would typically be from a package in your Linux distro likely to have “libbz2” and “dev” in the package name.

Answered By: Alex Martelli

Use your vendor’s package management to add the package that contains the development files for bz2. It’s usually a package called “libbz2-dev”. E.g. on Ubuntu

sudo apt-get install libbz2-dev

Answered By: user95975

If you happen to be trying to compile Python on RHEL5 the package is called bzip2-devel, and if you have RHN set up it can be installed with this command:

yum install bzip2-devel

Once that is done, you don’t need either of the –enable-bz2 or –with-bz2 options, but you might need –enable-shared.

Answered By: Eric

There are 2 solutions for this trouble:

option 1. install bzip2-devel

On Debian and derivatives, you can install easily like this:

sudo apt-get install bzip2-devel

option 2. build and install bzip2

In the README file of bzip2 package, it is explained that under certain platforms, namely those which employ Linux-ELF binaries, you have to build an additional shared object file like shown below:

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

The critical bit here is the following command:

make -f Makefile-libbz2_so

I’ve done this and after that tried to build Python again, like shown below:

cd Python-2.7.3
./configure --prefix=/path/to/local 
make install
Answered By: Richard Gomes