¿Cómo instalar psycopg2 con error pg_config?

5 minutos de lectura

Intenté instalar psycopg2 (adaptador de base de datos PostgreSQL) desde este sitiopero cuando trato de instalar después de cd en el paquete y escribo

python setup.py install 

Obtuve el siguiente error:

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'.

También probé ‘sudo pip install psycopg2’ y recibí el mismo mensaje.

Después de leer el documentossolicita ver el archivo setup.cfg (que se encuentra a continuación):

[build_ext]
define=

# PSYCOPG_DISPLAY_SIZE enable display size calculation (a little slower)
# HAVE_PQFREEMEM should be defined on PostgreSQL >= 7.4
# PSYCOPG_DEBUG can be added to enable verbose debug information

# "pg_config" is required to locate PostgreSQL headers and libraries needed to
# build psycopg2. If pg_config is not in the path or is installed under a
# different name uncomment the following option and set it to the pg_config
# full path.
#pg_config=

# Set to 1 to use Python datetime objects for default date/time representation.
use_pydatetime=1

# If the build system does not find the mx.DateTime headers, try
# uncommenting the following line and setting its value to the right path.
#mx_include_dir=

# For Windows only:
# Set to 1 if the PostgreSQL library was built with OpenSSL.
# Required to link in OpenSSL libraries and dependencies.
have_ssl=0

# Statically link against the postgresql client library.
#static_libpq=1

# Add here eventual extra libraries required to link the module.
#libraries=

Sin embargo, no estoy seguro si se supone que debo editar este archivo, ya que la documentación establece lo siguiente:

then take a look at the setup.cfg file.

Some of the options available in setup.cfg are also available as command line arguments of the build_ext sub-command. For instance you can specify an alternate pg_config version using:

$ python setup.py build_ext --pg-config /path/to/pg_config build

Use python setup.py build_ext --help to get a list of the options supported.

Obtuve la lista de opciones admitidas, pero no estoy seguro de adónde ir desde allí.

  • ¿Responde esto a tu pregunta? no se encuentra el ejecutable pg_config

    – Gonçalo Peres

    17 oct 2022 a las 12:37

avatar de usuario de jahmed31
jahmed31

Debian/Ubuntu

Pitón 2

sudo apt install libpq-dev python-dev

Pitón 3

sudo apt install libpq-dev python3-dev

Adicional

If none of the above solve your issue, try

sudo apt install build-essential
or

sudo apt install postgresql-server-dev-all

con pepita

Instala el psycopg2-binary En cambio, el paquete PyPI tiene ruedas de Python para Linux y Mac OS.

pip install psycopg2-binary

  • Yo tuve este problema también. Lamentablemente, con mis paquetes aptos para instalar python3-dev no trabajará. Lo que hice fue una permutación de esta respuesta: 1. sudo pip install --upgrade pip 2. sudo apt install -y libpq-dev postgresql-server-dev-all 3. sudo pip3 install psycopg2 No estoy seguro si todos sudoLos de son necesarios pero no me importan asi que los pongo.

    – Explorador intraestelar

    4 de abril de 2019 a las 23:43


  • Para entornos virtuales pip install psycopg2-binary es la solucion

    – YohanK

    18 de enero de 2021 a las 9:34

  • tengo ubuntu y esto sudo apt install libpq-dev python3-dev funcionó bien para mí, pero no creo que esta sea la forma correcta ya que no está dedicada a mi Virtualenv

    – sami

    15 de febrero a las 21:51

Avatar de usuario de Seph Cordovano
Seph Cordovano

Estaba teniendo este problema porque aún no había instalado PostgreSQL en mi máquina.

Para Mac

brew install postgresql

Para Mac sin cerveza

python3 -m pip install psycopg2-binary

  • Sí, también lo hizo.

    –Stiven Ramírez Arango

    10 mayo 2021 a las 0:55

  • Esto funcionó para mí en MacOS Big Sur

    – Mohit Munjal

    26 de enero de 2022 a las 7:07

  • después de buscar durante 2 días, esto funcionó para mí, gracias.

    – lolú

    15 de febrero de 2022 a las 12:47

avatar de usuario de sp1111
sp1111

Si necesita instalar sin compilar:

pip install psycopg2-binary

https://www.psycopg.org/docs/install.html#binary-install-from-pypi

Nota: El paquete psycopg2-binary está diseñado para que los principiantes comiencen a jugar con Python y PostgreSQL sin la necesidad de cumplir con los requisitos de compilación. Si es el mantenedor de un paquete de publicación según psycopg2 no deberías usar ‘psycopg2-binary’ como una dependencia del módulo. Para uso en producción, se recomienda utilizar la distribución de origen.

  • Solución limpia y rápida. No requirió ninguna otra instalación de biblioteca. Gracias.

    – Rogervila

    2 de septiembre de 2019 a las 7:50

  • De la documentación de psycopg2 (psycopg.org/docs/install.html#binary-install-from-pypi): Nota El paquete psycopg2-binary está diseñado para que los principiantes comiencen a jugar con Python y PostgreSQL sin la necesidad de cumplir con los requisitos de compilación. Si usted es el mantenedor de un paquete de publicación que depende de psycopg2, no debe usar ‘psycopg2-binary’ como una dependencia del módulo. Para uso en producción, se recomienda utilizar la distribución de origen. por favor agregue esto a su respuesta.

    –Koen van Zuijlen

    25 de marzo de 2020 a las 10:27

  • La mejor opción para una máquina de desarrollo, no es necesario instalar todo el paquete postgresql como sugieren otras respuestas.

    – ggat

    3 abr a las 22:10


Avatar de usuario de goCards
goCards

Si está en Ubuntu o cualquier otra distribución basada en Debian, intente

sudo apt-get install python3-psycopg2

De lo contrario, debe buscar e instalar los paquetes de cliente de Postgresql para su distribución. instalación de psycopg2 desde la fuente

En Macbook con M1 tuve que instalar postgresql

brew install postgresql

(Si no tienes cerveza: https://brew.sh)

luego ejecute la instalación nuevamente

python3 -m pip install psycopg2-binary

Avatar de usuario de F. P.
FP

Actualizar pip funcionó para mí: pip instalar –actualizar pip

Para OSX con Macports, puede instalar sudo port install py38-psycopg2 para Pitón 3.8. Puede buscar su versión de Python con port search psycopg2. En el momento de escribir este artículo, las versiones van desde la 2.7 a la 3.9, todas actualizadas con la versión 2.8.6 de psycopg2.

Nota: Esto probablemente no ayudará en un venv.

Editar: Entonces, para encontrar su pg_config para un venv, ejecute el comando port contents postgresql13 | grep pg_config dónde postgresql13 es la versión del paquete de postgresql instalado desde el comando de puerto anterior. Estás buscando un camino como /opt/local/lib/postgresql13/bin/pg_config. Exporte eso a su variable PATH con un comando como export PATH=/opt/local/lib/postgresql13/bin/:$PATH.

Consulte esta respuesta para Homebrew.

¿Ha sido útil esta solución?