Python's bz2 module not compiled by default

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.


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


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