You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application

PythonDjangoPostgresql

Python Problem Overview


I am working on Django project with virtualenv and connect it to local postgres database. when i run the project is says,

ImportError: No module named psycopg2.extensions

then i used this command to install

pip install psycopg2

then during the installation it gives following error.

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2
    
    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    
    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info/psycopg2.egg-info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO

writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt

writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found



Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

Python Solutions


Solution 1 - Python

Use these following commands, this will solve the error:

sudo apt-get install postgresql

then fire:

sudo apt-get install python-psycopg2

and last:

sudo apt-get install libpq-dev

Solution 2 - Python

I just run this command as a root from terminal and problem is solved,

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

or

sudo apt-get install libpq-dev python-dev
pip install psycopg2

Solution 3 - Python

Just install libpq-dev

$ sudo apt-get install libpq-dev

Solution 4 - Python

For me this simple command solved the problem:

sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev

Then I can do:

 pip install psycopg2

Solution 5 - Python

For Python 3, I did:

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

and then I was able to do:

pip3 install psycopg2

Solution 6 - Python

They changed the packaging for psycopg2. Installing the binary version fixed this issue for me. The above answers still hold up if you want to compile the binary yourself.

See http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8.

> Binary packages no longer installed by default. The ‘psycopg2-binary’ package must be used explicitly.

And http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

So if you don't need to compile your own binary, use:

pip install psycopg2-binary

Solution 7 - Python

You must setup postgresql-server-dev-X.Y, where X.Y. your's servers version, and it will install libpq-dev and other servers variables at modules for server side developing. In my case it was

apt-get install postgresql-server-dev-9.5

> Reading package lists... Done > Building dependency tree Reading state information... Done The > following packages were automatically installed and are no longer > required: libmysqlclient18 mysql-common Use 'apt-get autoremove' to > remove them. The following extra packages will be installed:
> libpq-dev Suggested packages: postgresql-doc-10 The following NEW > packages will be installed: libpq-dev postgresql-server-dev-9.5

In your's case

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

Solution 8 - Python

I was using a virtual environment on Ubuntu 18.04, and since I only wanted to install it as a client, I only had to do:

sudo apt install libpq-dev
pip install psycopg2

And installed without problems. Of course, you can use the binary as other answers said, but I preferred this solution since it was stated in a requirements.txt file.

Solution 9 - Python

Run the command below;

sudo apt-get install python-pip python-dev libpq-dev postgresql postgresql-contrib
pip install psycopg2

Solution 10 - Python

In my case, I was facing this problem when I ran pip install -r requirements.txt to install all packages for a Django project with PostgreSQL database on an Ubuntu machine, I ran into this error and many other installation errors.

To solve this one, I ran the following commands:

sudo apt install postgresql postgresql-contrib  

sudo apt install libpq-dev

sudo apt install python3-dev

sudo apt install python3-pip

sudo apt install python3-psycopg2

pip3 install psycopg2

pip3 install psycopg2-binary

Plus, also check if the Ubuntu and Python and Psycopg versions are compatible together.

Also, pip install aiopg, solve the issue when i ran into it the second time.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMuhammad TaqiView Question on Stackoverflow
Solution 1 - PythonMegaBytesView Answer on Stackoverflow
Solution 2 - PythonMuhammad TaqiView Answer on Stackoverflow
Solution 3 - PythonIvanView Answer on Stackoverflow
Solution 4 - PythonruhanbidartView Answer on Stackoverflow
Solution 5 - PythonGarrettView Answer on Stackoverflow
Solution 6 - PythonrobkorvView Answer on Stackoverflow
Solution 7 - PythonMax SherbakovView Answer on Stackoverflow
Solution 8 - PythonCheco RView Answer on Stackoverflow
Solution 9 - PythonSurya BistaView Answer on Stackoverflow
Solution 10 - PythonSinghView Answer on Stackoverflow