[Fixed] modulenotfounderror: no module named ‘_bz2

One uses Python’s modules for a variety of purposes. However, there might be installation issues. One such module is the bz2 module. In this article, you will interpret a commonly encountered ‘modulenotfounderror: no module named ‘_bz2‘ error and get to know how to resolve the error.

Python’s bz2 module

The bz2 module provides functions for reading and writing compressed files. The format of a compressed file is known as the “BZIP2” format. That is, it has two parts: a header and a data block. The header contains information about the compression method and length of the data block. The data block contains a collection of bytes that are compressed using that compression method. In order to use this module and its libraries, write this command:

import bz2
pip install bz2file
#use this on command prompt

In order for you to use this module, you’ll need to know what kind of data you want to compress/decompress, as well as how often you want to do so. Then only you can start working with it!

Usage of the bz2 module

The bz2 module is a Python module that contains functions to decode and encode data using the bzip2 compression algorithm. The module is used for reading and writing files in compressed format, as well as for converting between file formats.

It’s a fairly simple process, but it does require the use of a few modules from the standard library, including zlib and struct. You can find more information about using these other modules in your code by adding them to all attributes of your module definition.

Fixing the error

The module name must be exactly as it appears in the import statement. This error can occur when you import a module and misspell the name of that module. The other probability can be that you missed some of the libraries while installing bz2. Otherwise, check whether the directory where you installed Python and the bz2 module are the same. In case they are different, it won’t work.

sudo apt-get install libbz2-dev
#re install on ubuntu

In case you are doing this on Fedora, use the given command:

sudo yum install bzip2-devel

If it is a virtual environment, use the following:

sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so ../../../env/lib/python2.7/
#update python version accordingly

This will create an isolated environment. If you wish, you can get rid of your environment then. Also, with Red Hat and CentOS, the given command can be used:

yum install bzip2-devel

Pandas with bz2 module

If you get the same error while working with pandas, you must reinstall this module and then Python to make it work. If there is an issue with pip, you can reinstall it too. If all this is done from scratch, it will be error-free. But first, install bz2 and related dependencies using this command:

sudo apt-get install libbz2-dev

Next, reinstall Python because this won’t work with the previously installed version. You can check for current updated versions. Then, you need to extract Gzipped source tarball file. You need Python with the bz2 dependencies, so write the following commands one by one on the terminal:

make install

Execute them one by one only and use it in a virtual environment only.

source myenv/bin/activate # to activate virtual environment
pip install pandas

Last step involves using pip command to use pandas. So now, pandas will work with bz2 module and your work’s done.

no module named ‘_bz2’ pyenv

While installing pyenv , you may get this error. This happens when some important llibraries are missing, so first ensure all essential libraries are downloaded.

sudo apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev

Next, reinstall Pyenv.

pyenv install version_number 
#in place of version number you will install the updated version

Otherwise, if you only need to work with bz2, first install the library on Ubuntu and later install the latest version of pyenv.

sudo apt-get install libbz2-dev #on ubuntu
pyenv install version_number

Error resolution on Centos 7

Here, you need to do more than just download libbz2-dev.

sudo cp /usr/lib64/python2.7/lib-dynload/bz2.so /python_install_path/lib/python2.7

And, install_path is /usr/local/lib/python2.7/. You can update this with the current Python version. Also, if you only set your path, you need to add its location.

What is bzip2-devel?

It is a package that consists of bzip2 functions. It is used for those apps that may use the bzip2 functions. bzip2 helps to compress files up to 15%. It has high-speed compression and decompression rates. It can even include data belonging to CD drives, backup files, etc., and compress it. It is one of the most widely used compression libraries. Its most useful feature is that it can decompress the part of backup data that wasn’t lost in case of crashes.

FAQs on modulenotfounderror: no module named ‘_bz2

For updating Python, what can I use?

You can upgrade it with the pip command:
Pip install –upgrade python


This article explained how you could fix the ‘modulenotfounderror: no module named ‘_bz2’ error in Python. It may be due to a couple of reasons. You might have installed Python and bz2 module dependencies in different directories too. Reinstalling is considered to be the best way out.

Notify of
Inline Feedbacks
View all comments