Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install psycopg2 with "pip" on Python?

I'm using virtualenv and I need to install "psycopg2".

I have done the following:

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160 

And I have the following messages:

Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2 -2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160   Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded   Running setup.py egg_info for package from http://pypi.python.org/packages/sou rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160     Error: pg_config executable not found.      Please add the directory containing pg_config to the PATH     or specify the full executable path with the option:          python setup.py build_ext --pg-config /path/to/pg_config build ...      or with the pg_config option in 'setup.cfg'.     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: pg_config executable not found.    Please add the directory containing pg_config to the PATH  or specify the full executable path with the option:        python setup.py build_ext --pg-config /path/to/pg_config build ...    or with the pg_config option in 'setup.cfg'.  ---------------------------------------- Command python setup.py egg_info failed with error code 1 Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p ip.log 

My question, I only need to do this to get the psycopg2 working?

python setup.py build_ext --pg-config /path/to/pg_config build ... 
like image 802
André Avatar asked Mar 24 '11 14:03

André


People also ask

How do I import psycopg2 into Python?

The easiest way to install psycopg2 is to use the pip command. This command will install packages from the Python Package Index, or 'pypi'. NOTE: This command will install the latest version of psycopg2 . If you want a particular version, just add a version number after the word psycopg2 , like this: =2.7.

What is pip install psycopg2-binary?

psycopg2-binary 2.9. 3 It was designed for heavily multi-threaded applications that create and destroy lots of cursors and make a large number of concurrent “INSERT”s or “UPDATE”s. Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in being both efficient and secure.

Do I need to install Postgres to use psycopg2?

psycopg2 requires the PostgreSQL libpq libraries and the pg_config utility, which means you need a decent chunk of PostgreSQL to be installed.

What is psycopg2 module in Python?

Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection).


1 Answers

Note: Since a while back, there are binary wheels for Windows in PyPI, so this should no longer be an issue for Windows users. Below are solutions for Linux, Mac users, since lots of them find this post through web searches.


Option 1

Install the psycopg2-binary PyPI package instead, it has Python wheels for Linux and Mac OS.

pip install psycopg2-binary 

Option 2

Install the prerequsisites for building the psycopg2 package from source:

Debian/Ubuntu

Python 3

sudo apt install libpq-dev python3-dev 

You might need to install python3.8-dev or similar for e.g. Python 3.8.

Python 2

sudo apt install libpq-dev python-dev 

If that's not enough, try

sudo apt install build-essential 

or

sudo apt install postgresql-server-dev-all 

as well before installing psycopg2 again.

CentOS 6

See Banjer's answer

like image 55
joar Avatar answered Sep 19 '22 03:09

joar