Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error trying to install Postgres for python (psycopg2)

I tried to install psycopg2 to my environment, but I get the following error:

(venv)avlahop@apostolos-laptop:~/development/django/rhombus-dental$ sudo pip install psycopg2 Downloading/unpacking psycopg2, Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded Running setup.py egg_info for package psycopg2  Installing collected packages: psycopg2   Running setup.py install for psycopg2     building 'psycopg2._psycopg' extension     x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x09010D -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.1/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement     In file included from psycopg/psycopgmodule.c:27:0:     ./psycopg/psycopg.h:30:20: fatal error: Python.h: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος      #include <Python.h>                     ^     compilation terminated.     error: command 'x86_64-linux-gnu-gcc' failed with exit status 1     Complete output from command /usr/bin/python -c "import setuptools;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-SgfQCA-record/install-record.txt --single-version-externally-managed: running install  running build  running build_py  creating build  creating build/lib.linux-x86_64-2.7  creating build/lib.linux-x86_64-2.7/psycopg2  copying lib/pool.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/errorcodes.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/_json.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/_range.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/extensions.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/psycopg1.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/tz.py -> build/lib.linux-x86_64-2.7/psycopg2  copying lib/extras.py -> build/lib.linux-x86_64-2.7/psycopg2  creating build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/testconfig.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copyng tests/test_bug_gc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_dates.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_copy.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_cancel.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_bugX000.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_types_basic.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_async.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_lobject.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_cursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_with.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_types_extras.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/testutils.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_notify.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_green.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_quote.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_connection.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_transaction.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/test_module.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests  running build_ext  building 'psycopg2._psycopg' extension  creating build/temp.linux-x86_64-2.7  creating build/temp.linux-x86_64-2.7/psycopg  x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x09010D -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.1/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement  In file included from psycopg/psycopgmodule.c:27:0:  ./psycopg/psycopg.h:30:20: fatal error: Python.h: No such file or directory  #include <Python.h>                  ^  compilation terminated.  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1  ---------------------------------------- Cleaning up... Command /usr/bin/python -c "import setuptools;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-SgfQCA-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip_build_root/psycopg2 Traceback (most recent call last):   File "/usr/bin/pip", line 9, in <module>     load_entry_point('pip==1.4.1', 'console_scripts', 'pip')()   File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 148, in main     return command.main(args[1:], options)   File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 169, in main     text = '\n'.join(complete_log) UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 54: ordinal not in range(128) 

I also get errors trying to install gunicorn. I followed this example here but nothing. My virtual environment was created using the --no-site-packagesflag. I use ubuntu 13.10 and greek environment. Maybe it's that?

like image 672
Apostolos Avatar asked Apr 08 '14 13:04

Apostolos


People also ask

How do you fix ModuleNotFoundError No module named psycopg2?

The Python "ModuleNotFoundError: No module named 'psycopg2'" occurs when we forget to install the psycopg2-binary module before importing it or install it in an incorrect environment. To solve the error, install the module by running the pip install psycopg2-binary command.

Does psycopg2 work with Python 3?

The current psycopg2 implementation supports: Python 2 versions from 2.6 to 2.7. Python 3 versions from 3.2 to 3.6. PostgreSQL server versions from 7.4 to 9.6.

How do I install psycopg2 on Windows 10?

Install the psycopg2 module in Windows 10 Now that we have our virtual environment setup and ready, install the psycopg2 module to create a simple connection in the PostgreSQL database cluster. Make sure to upgrade the pip command to avoid error when installing a package module from python in a virtual environment.


2 Answers

The python-dev package is required for compilation of Python extensions written in C or C++, like psycopg2. If you're running a Debian-based distribution (e.g. Ubuntu), you can install python-dev by running

sudo apt install python-dev 

or

sudo apt install python3-dev 

depending on your python version (for example, sudo apt install python3.8-dev).

After that, proceed to install psycopg2 in your virtualenv environment as usual.

like image 140
lanzz Avatar answered Sep 22 '22 17:09

lanzz


For Ubuntu 14.04, from Docker image python:3.4.3-slim this combination worked for me:

sudo apt-get update sudo apt-get install -y build-essential sudo apt-get install -y python3.4-dev sudo apt-get install -y libpq-dev  pip3 install psycopg2 

Note build-essential package. It was crucial in my case.

like image 27
neciu Avatar answered Sep 22 '22 17:09

neciu