ImportError: No module named psycopg2
PythonCentosOdooCentos5Python Problem Overview
In installation process of OpenERP 6, I want to generate a config file with these commands:
cd /home/openerp/openerp-server/bin/
./openerp-server.py -s --stop-after-init -c /home/openerp/openerp-server.cfg
But it always showed the message: ImportError: No module named psycopg2
When I checked for psycopg2 package, it's already installed. Package python-psycopg2-2.4.5-1.rhel5.x86_64
is already installed to its latest version. Nothing to do. What's wrong with this? My server is CentOS, I've installed Python 2.6.7.
Python Solutions
Solution 1 - Python
Step 1: Install the dependencies
sudo apt-get install build-dep python-psycopg2
Step 2: Run this command in your virtualenv
pip install psycopg2-binary
Ref: Fernando Munoz
Solution 2 - Python
Use psycopg2-binary instead of psycopg2.
pip install psycopg2-binary
Or you will get the warning below:
> UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>;.
Reference: Psycopg 2.7.4 released | Psycopg
Solution 3 - Python
I faced the same issue and resolved it with following commands:
sudo apt-get install libpq-dev
pip install psycopg2
Solution 4 - Python
Try installing
> psycopg2-binary
with
pip install psycopg2-binary --user
Solution 5 - Python
Please try to run the command import psycopg2
on the python console. If you get the error then check the sys.path
where the python look for the install module. If the parent directory of the python-psycopg2-2.4.5-1.rhel5.x86_64
is there in the sys.path
or not. If its not in the sys.path
then run export PYTHONPATH=<parent directory of python-psycopg2-2.4.5-1.rhel5.x86_64>
before running the openerp server.
Solution 6 - Python
Try with these:
virtualenv -p /usr/bin/python3 test_env
source test_env/bin/activate
pip install psycopg2
run python and try to import if you insist on installing it on your systems python try:
pip3 install psycopg2
Solution 7 - Python
Import Error on Mac OS
If psycopg2
is getting installed but you are unable to import it in your .py
file then the problem is libpq
, its linkages, and the library openssl
, on which libpq
depends upon. The overall steps are reproduced below. You can check it step by step to know which is the source of error for you and then you can troubleshoot from there.
-
Check for the installation of the
openssl
and make sure it's working. -
Check for installation of
libpq
in your system it may not have been installed or not linked. If not installed then install it using the commandbrew install libpq
. This installs libpq library. As per the documentation > libpq is the C application programmer's interface to PostgreSQL. libpq is a set of library functions that allow client programs to pass queries to the PostgreSQL backend server and to receive the results of these queries. -
Link libpq using
brew link libpq
, if this doesn't work then use the command:brew link libpq --force
. -
Also put in your
.zshrc
file the following
export PATH="/usr/local/opt/libpq/bin:$PATH"
. This creates all the necessary linkages forlibpq
library . -
Now restart the terminal or use the following command
source ~/.zshrc
. -
Now use the command
pip install psycopg2
. It will work. This works, even when you are working in conda environment.
N.B.pip install psycopg2-binary
should be avoided because as per the developers of the psycopg2 library >The use of the -binary packages in production is discouraged because in the past they proved unreliable in multithread environments. This might have been fixed in more recent versions but I have never managed to reproduce the failure.
Solution 8 - Python
sudo pip install psycopg2-binary
Solution 9 - Python
You need to install the psycopg2
module.
On CentOS: Make sure Python 2.7+ is installed. If not, follow these instructions: http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
# Python 2.7.6:
$ wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
$ tar xf Python-2.7.6.tar.xz
$ cd Python-2.7.6
$ ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
$ make && make altinstall
$ yum install postgresql-libs
# First get the setup script for Setuptools:
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
# Then install it for Python 2.7 and/or Python 3.3:
$ python2.7 ez_setup.py
$ easy_install-2.7 psycopg2
Even though this is a CentOS question, here are the instructions for Ubuntu:
$ sudo apt-get install python3-pip python-distribute python-dev
$ easy_install psycopg2
Solution 10 - Python
Recently faced this issue on my production server. I had installed pyscopg2 using
sudo pip install psycopg2
It worked beautifully on my local, but had me for a run on my ec2 server.
sudo python -m pip install psycopg2
The above command worked for me there. Posting here just in case it would help someone in future.
Solution 11 - Python
i have the same problem, but this piece of snippet alone solved my problem.
pip install psycopg2
Solution 12 - Python
For python3 on ubuntu, this worked for me:
$sudo apt-get update
$sudo apt-get install libpq-dev
$sudo pip3 install psycopg2-binary
Solution 13 - Python
I have done 2 things to solve this issue:
- use Python 3.6 instead of 3.8.
- change Django version to 2.2 (may be working with some higher but I change to 2.2)
Solution 14 - Python
For Python3
Step 1: Install Dependencies
sudo apt-get install python3 python-dev python3-dev
Step 2: Install
pip install psycopg2
Solution 15 - Python
check correctly if you had ON your virtual env of your peoject, if it's OFF then make it ON. execute following cammands:
workon <your_env_name>
python manage.py runserver
It's working for me
Solution 16 - Python
Run into the same issue when i switch to ubuntu from windows 10.. the following worked for me.. this after googling and trying numerous suggestions for 2 hours...
sudo apt-get install libpq-dev, then pip3 install psycopg2
I hope this helps someone who has encountered the same problem especially when switching for windows OS to linux(ubuntu).
Solution 17 - Python
Solved the issue with below solution :
-
Basically the issue due to _bz2.cpython-36m-x86_64-linux-gnu.so Linux package file. Try to find the the location.
-
Check the install python location ( which python3)- Example: /usr/local/bin/python3
-
copy the file under INSTALL_LOCATION/lib/python3.6
cp -rvp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/python3.6