pg_config ejecutable no encontrado

Tengo problemas para instalar psycopg2. Recibo el siguiente error cuando intento pip install psycopg2:

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 in /tmp/pip-build/psycopg2

Pero el problema es pg_config en realidad está en mi PATH; se ejecuta sin ningún problema:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

Intenté agregar la ruta pg_config al setup.cfg archivo y construirlo usando los archivos fuente que descargué de su sitio web (http://initd.org/psycopg/) y recibo el siguiente mensaje de error.

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

Pero en realidad está ALLÍ!!!

Estoy desconcertado por estos errores. ¿Alguien puede ayudar por favor?

Por cierto yo sudo todos los comandos. También estoy en RHEL 5.5.

preguntado el 23 de julio de 12 a las 20:07

Cuando ejecuta comandos como sudo, $PATH está cambiado. ¿Puedes verificar tu $PATH como root? -

En mi caso, corro ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_config y todo bien! -

30 Respuestas

pg_config es en postgresql-devel (libpq-dev en Debian/Ubuntu, libpq-devel en Centos/Fedora/Cygwin/Babun).

contestado el 20 de mayo de 21 a las 18:05

Resuelto después de instalar libpq-dev en ubuntu lúcido (10.04). Gracias de antemano. - pilón

pg_config de postgress.app está en /Applications/Postgres.app/Contents/Versions/<your version>/bin (Mac OS X) - Tim Daubenschütz

Es libpqxx-devel en fedora. - robar

sudo apt-get install libpq-dev funcionó para mí en Ubuntu - Bill Cheatham

en Alpine Linux: apk agregar postgresql-dev - RJ

En Mac OS X, lo resolví usando el homebrew gerente de empaquetación

brew install postgresql

Respondido 26 Abr '18, 22:04

¡Excelente! Esto resolvió el problema para mí, pero los novatos deben saber que necesitan instalar el Homebrew administrador de paquetes primero para que el brew mando a trabajar. - seane

También funcionó para mí, aunque hice la instalación de brew después de la instalación de pgadmin. - Kanal

¿Eso no instala toda la base de datos? - zmbq

necesito el extra brew link postgresql - Vincentlcy

Para agregar al comentario de @seane, use este tutorial instalar homebrew. - Srini

Has instalado python-dev? Si ya lo tienes, prueba también a instalar libpq-dev

sudo apt-get install libpq-dev python-dev

Del artículo: Cómo instalar psycopg2 bajo virtualenv

Respondido 11 Oct 19, 12:10

En mi computadora solo instalo el cliente de Postgresql, por lo que debes instalar el libpq-dev y el python-dev. - bnPYSse

Dudoso que se necesite python-dev. - juanitogan

me ayudó. Gracias - Arun

Se necesita python3-dev. sin eso lo consigo Python.h: No such file or directory - Krubo

una dependencia más requerida para esto es apt-get install -y gcc - Anum Sheraz

También en OSX. Instalado Postgress.app desde http://postgresapp.com/ pero tenía el mismo problema.

Encontré pg_config en el contenido de esa aplicación y agregó el directorio a $PATH.

Fue en /Applications/Postgres.app/Contents/Versions/latest/bin. Entonces esto funcionó: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".

Respondido 07 Abr '17, 21:04

@GianlucaLodigiani también puedes hacer esto si no quieres reiniciar la consola PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2 - Bernardo Duarte

Perfect BigSur Apple Silicon Funciona de maravilla. Agregué lo mismo a ~/.zshrc para que siempre esté disponible para mí. - doogle

Puede instalar binarios precompilados en cualquier plataforma con pip or conda:

python -m pip install psycopg2-binary

or

conda install psycopg2

Tenga en cuenta que el página pypi psycopg2-binary recomienda construir desde la fuente en producción:

El paquete binario es una opción práctica para el desarrollo y las pruebas, pero en producción se recomienda utilizar el paquete creado a partir de las fuentes.

Para usar el paquete creado a partir de las fuentes, use python -m pip install psycopg2. Ese proceso requerirá varias dependencias (documentación) (énfasis mío):

  • Compilador de CA.
  • La Archivos de encabezado de Python. Por lo general, se instalan en un paquete como python-dev. Un mensaje como error: Python.h: No such file or directory es una indicación de que faltan los encabezados de Python.
  • La archivos de encabezado libpq. Por lo general, se instalan en un paquete como libpq-dev. Si obtienes un error: libpq-fe.h: No such file or directory te los estás perdiendo.
  • La pg_config programa: normalmente lo instala el libpq-dev paquete pero a veces no está en un PATH directorio. Tenerlo en el PATH agiliza en gran medida la instalación, así que intente ejecutar pg_config --version: si devuelve un error o un número de versión inesperado, busque el directorio que contiene el pg_config enviado con el derecho libpq versión (normalmente /usr/lib/postgresql/X.Y/bin/) y añádelo a la PATH:
$ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH

Solo necesitas pg_config compilar psycopg2, no para su uso regular.

Una vez que todo está en su lugar, solo es cuestión de ejecutar el estándar:

$ pip install psycopg2

o, desde el directorio que contiene el código fuente:

$ python setup.py build
$ python setup.py install

Respondido el 28 de diciembre de 20 a las 20:12

En Ubuntu, primero necesitaba instalar la biblioteca libpq-dev y luego ejecutar el comando pip install nuevamente: apt install libpq-dev - Benjamin

Eso lo resolvió en un Mac OS X sin necesidad de instalar postgresql por completo: oren yosifon

Gracias por señalar la recomendación de la documentación para compilar desde la fuente. Secundo esta sugerencia: los desarrolladores deben usar la última mitad de esta respuesta y evitar el binario preempaquetado, incluso para la mayoría de los propósitos de desarrollo. - Jason R. Stevens CFA

En alpine, la biblioteca que contiene pg_config is postgresql-dev. Para instalar, ejecute:

apk add postgresql-dev

Respondido 06 Jul 17, 02:07

Esto es lo que funcionó para mí en CentOS, primero instale:

sudo yum install postgresql postgresql-devel python-devel

En Ubuntu, solo use los paquetes apt-get equivalentes.

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

Y ahora incluya la ruta a su directorio binario postgresql con su instalación de pip, esto debería funcionar para Linux basado en Debain o RHEL:

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

Asegúrese de incluir la ruta correcta. Eso es todo :)

Respondido el 16 de diciembre de 14 a las 04:12

En Ubuntu es sudo apt-get install postgresql postgresql-dev python-dev, y esto funcionó para mí. - módulos

también funciona en Amazon Linux AMI a partir de diciembre de 2016. También asegúrese de gcc está instalado y python3-devel. - villasv

En Amazon Linux, el primer comando funcionó bien. - thanos.a

apt-get build-dep python-psycopg2

Respondido 08 Feb 13, 19:02

Debe agregar los requisitos de python utilizados en Postgres en Ubuntu. Correr:

sudo apt-get install libpq-dev python-dev

Respondido el 27 de junio de 19 a las 19:06

Solo para resumir, también enfrenté exactamente el mismo problema. Después de leer muchas publicaciones de stackoverflow y blogs en línea, la solución final que funcionó para mí es esta:

1) Se debe instalar PostgreSQL (desarrollo o cualquier versión estable) antes de instalar psycopg2.

2) El archivo pg_config (este archivo normalmente reside en la carpeta bin de la carpeta de instalación de PostgreSQL) PATH tuvo que configurarse explícitamente antes de instalar psycopg2. En mi caso, la RUTA de instalación de PostgreSQL es:

/opt/local/lib/postgresql91/

entonces, para establecer explícitamente la RUTA del archivo pg_config, ingresé el siguiente comando en mi terminal:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

Este comando asegura que cuando intente instalar pip psycopg2, esta vez encontrará la RUTA a pg_config automáticamente.

También publiqué un error completo con trace y su solución en mi blog que usted puede querer consultar. Es para Mac OS X, pero el problema pg_config PATH es genérico y también se aplica a Linux.

Respondido 05 Jul 13, 07:07

para mí en OS X, el camino se veía así PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH" - andilalabs

@andi Sí, la ruta de instalación de Postgres puede diferir, pero la receta de instalación de psycopg2 que mencioné anteriormente sigue siendo la misma. Espero haber ayudado. - Ali raza bhayani

sudo apt-get install libpq-dev funciona para mí en Ubuntu 15.4

Respondido el 07 de diciembre de 16 a las 22:12

Si usa Ubuntu más nuevo, siga usando las instrucciones de instalación mencionadas anteriormente. Ver pg_config - estaca

Tienes que instalar libpq-dev/postgresql-libs, que son los archivos de encabezado y la biblioteca estática para compilar programas C para vincular con la biblioteca libpq para comunicarse con un backend de base de datos PostgreSQL.

En Arch esto se ejecutará:

$ sudo pacman -S postgresql-libs

En Debian y Ubuntu:

$ sudo apt-get install libpq-dev

En Mac OS X:

$ brew install postgresql

En RedHat/CentOS/Fedora:

$ sudo yum install postgresql-devel

Respondido el 09 de enero de 21 a las 22:01

En Linux Mint sudo apt-get install libpq-dev trabajado para mí.

Respondido el 18 de diciembre de 17 a las 02:12

Para los usuarios de ubuntu, esta es la solución:

sudo apt install libpq-dev

Funcionó para mí.

Respondido 04 Oct 21, 19:10

Para aquellos que ejecutan OS X, esta solución funcionó para mí:

1) Instale Postgres.aplicación:

http://www.postgresql.org/download/macosx/

2) Luego abra la Terminal y ejecute este comando, reemplazando donde dice {{version}} con el número de versión de Postgres:

export PATH=$PATH:/Aplicaciones/Postgres.app/Contents/Versions/{{version}}/bin

p.ej

export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.4/bin

respondido 26 mar '15, 11:03

O enlace simbólico a la última versión sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config - C--

En mi Mac, exporté la RUTA del archivo ~/.zprofile. - user3785966

ACTUALIZAR las secciones /etc/yum.repos.d/CentOS-Base.repo, [base] y [updates]
AÑADIR excluir = postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

Respondido 03 ago 14, 16:08

Intenta agregarlo a PATH:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

Respondido 20 ago 12, 13:08

-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory - pilón

@pylover, debe usar la ruta correcta a su directorio bin de Postgres. Estás seguro que /usr/pgsql-x.x/bin/ ¿es correcto? - Marboni

También sería suficiente agregar la carpeta donde se encuentran todos los elementos importantes. pg_ archivos en vivo. Para postgres.app esta ruta en Mac OS X es /Applications/Postgres.app/Contents/Versions/9.3/bin. PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin Actualiza tu versión* si se lanzó una nueva versión! - Tim Daubenschütz

Esto funcionó para mí en OS X El Capitan: PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ - David Hariri

La solución de Ali funcionó para mí, pero tenía problemas para encontrar la ubicación de la carpeta bin. Una forma rápida de encontrar la ruta en Mac OS X es abrir psql (hay un enlace rápido en la barra de menú superior). Esto abrirá una ventana de terminal separada y en la segunda línea aparecerá la ruta de su instalación de Postgres así:

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

Su archivo pg_config está en esa carpeta bin. Por lo tanto, antes de instalar psycopg2 configure la ruta del archivo pg_config:

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

o para una versión más nueva:

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

Luego instale psycopg2.

contestado el 15 de mayo de 14 a las 19:05

Los documentos más nuevos usan la siguiente ruta: /Applications/Postgres.app/Contents/Versions/9.3/bin - jpimentel

Parece moverse. find /usr/local -name 'pg_config' - Praxeolítico

Simplemente ejecuta lo siguiente:

sudo apt install libpq-dev

Me solucionó el problema

Respondido 11 Feb 21, 09:02

Voy a dejar esto aquí para la próxima alma desafortunada que no pueda solucionar este problema a pesar de todas las soluciones proporcionadas. Simplemente use sudo pip3 install psycopg2-binary

Respondido el 27 de Septiembre de 19 a las 14:09

Esto no funcionó para mí. Solamente brew install postgresql arreglado. - Tsando

Usted podría tener que pip install psycopg2-binary para mí: pip -> python2, pip3 -> python3. Pero mientras lo hiciera funcionar, ¡era una de las muchas soluciones! - DUDANF

Resolvió mi problema al usar docker. - OMY

Debe actualizar su pip antes de instalar psycopg2. Usa este comando

pip install --upgrade pip

Respondido 07 Abr '17, 08:04

Una respuesta más detallada podría ser útil en la mayoría de los casos. - bkausbk

En MacOS, la solución más simple será vincular el binario correcto, es decir, bajo el paquete Postgres.

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

Esto es bastante inofensivo y todas las aplicaciones podrán usarlo en todo el sistema, si es necesario.

respondido 21 nov., 19:04

Funciona para mí, aunque no tenía que sudo. ¡Gracias! - Juan Ottenlips

Funciona para mí de hecho! - Hadnazzar

En macOS 11.01, M1 Chip, la creación de un enlace simbólico funcionó para mí: sudo ln -s /Library/PostgreSQL/13/bin/pg_config /usr/local/bin/pg_config - Anand

En Mac OS X y si está utilizando la aplicación Postgres (http://postgresapp.com/):

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

No es necesario especificar la versión de Postgres en este comando. Siempre se señalará a la última.

y hacer

pip install psycopg2

PD: si los cambios no se reflejan, es posible que deba reiniciar la Terminal/Símbolo del sistema

Fuente

Respondido 26 Oct 16, 07:10

Instalación python-psycopg2 lo resolvió para mí en Arch Linux:

pacman -S python-psycopg2

respondido 10 nov., 19:10

¿Qué pasa con Windows? - Prathamesh Más

@PrathameshMore No sé, no uso Windows. Has probado esta respuesta: stackoverflow.com/a/25767749/5660517 ? - Ronan Boiteau

Tuve este problema porque no tenía una instalación de postgres. Si tiene brew install, ejecute

brew install postgresql

Esto debería solucionar el problema.

Respondido 23 Jul 21, 16:07

En Windows, es posible que desee instalar el Puerto de Windows de Psycopg, que se recomienda en documentación de psycopg.

Respondido el 10 de Septiembre de 14 a las 15:09

Acabo de resolver el problema en Cent OS 7 por:

export PATH=$PATH:/usr/pgsql-9.5/bin

asegúrese de que su versión de PostgreSql coincida con la versión correcta anterior.

Respondido 05 ago 16, 09:08

Aquí, para completar OS X: si instala PostgreSQL desde MacPorts, pg_config estará en /opt/local/lib/postgresql94/bin/pg_config.

Cuando instaló MacPorts, ya agregó /opt/local/bin a su RUTA.

Entonces, esto solucionará el problema: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Actualmente pip install psycopg2 será capaz de correr pg_config sin problemas.

Respondido 29 Abr '15, 19:04

¡Gracias por proporcionar una respuesta específica de MacPorts! 🙏🏻 No pude encontrar uno, y esto funcionó para mí. - daniel brady

Esto se sugirió en parte antes, agregándolo aquí para mayor claridad.

De la documentación en https://www.psycopg.org/docs/install.html.
sugieren ejecutar: $ pip instalar psycopg2-binary

Eso me resolvió el problema.

Respondido el 24 de Septiembre de 20 a las 09:09

Para aquellos en macOS Catalina usando el zsh shell que también han instalado el aplicación postgres:

Abra su ~/.zshrc archivo, y add la siguiente línea:

export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

Luego cierra todos tus terminales, vuelve a abrirlos y habrás resuelto tu problema.

Si no desea cerrar sus terminales, simplemente ingrese source ~/.zshrc en cualquier terminal en la que le gustaría seguir trabajando.

respondido 27 nov., 19:00

esto funciona en big sur también. - diva

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.