entorno crear python macos postgresql psycopg2

python - crear - Mac+virtualenv+pip+postgresql=Error: el ejecutable pg_config no se encuentra



crear entorno virtual python windows (14)

Estaba tratando de instalar postgres para un tutorial, pero pip me da error:

pip install psycopg

Un fragmento de error que obtengo:

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

¿Dónde está pg_config en mi virtualenv? ¿Cómo configurarlo? Estoy usando virtualenv porque no quiero una instalación de postgres en todo el sistema.


Además de las respuestas proporcionadas por @bkev y @andi, de acuerdo con la documentation en Postgres.app, debe agregar lo siguiente a su bash_profile en Mac:

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

Tenga en cuenta que no hay un número de versión codificado. Quería agregar esto como un comentario a las respuestas anteriores, pero no tengo suficiente reputación para esto.


Así es como pude resolver este problema en mi Mac (OSX 10.9):

brew update brew install --force ossp-uuid brew install postgresql pip install psycopg

Obtuve un error CLANG cuando probé pip install psycopg (un problema de LLVM 5.1 ), así que tuve que instalar psycopg con este comando:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg

Es similar a Mingyu''s solución Mingyu''s , pero hay suficientes diferencias que pensé que valía la pena compartir.


El mío estaba ubicado en /Library/PostgreSQL/9.4/bin

export PATH=$PATH:/Library/PostgreSQL/9.4/bin


En Ubuntu solo necesitaba el paquete dev de postgres:

sudo apt-get install postgresql-server-dev-all


En Mac, la solución es instalar postgresql :

brew install postgresql

En CentOS, la solución es instalar postgresql-devel :

sudo yum install postgresql-devel

pg_config está en el paquete postgresql-devel



En la Mac, si está utilizando Postgres.app , el archivo pg_config se encuentra en su directorio /Applications/Postgres.app/Contents/Versions/<current_version>/bin . Eso deberá agregarse a la ruta del sistema para corregir este error, como este:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin

Entonces, por ejemplo, si la versión actual de Postgres.app es 9.5, esta línea de exportación sería:

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


Este error se produce cuando las herramientas de compilación no pueden encontrar las bibliotecas Postgresql.

A menudo se requiere que instruya a psycopg2 cómo encontrar el binario pg_config, usted puede:

  1. agregue la ruta a pg_config en su ruta de shell (/ usr / local / pgsql / bin /)

  2. o edite el archivo setup.cfg en la carpeta fuente psycopg2 y proporcione la ruta completa a pg_config en la línea que comienza con pg_config =

pg_config = / usr / local / pgsql / bin / pg_config

  • lo anterior es un ejemplo, puede locate pg_config para averiguar dónde reside, o simplemente escriba which pg_config y debe indicarle la ruta.

Con menor frecuencia, el error proviene de no haber instalado postgresql en su sistema. Si es así, descargue y cree postgres, o descargue un binario psycopg2 pre-construido para OS X.


Estoy totalmente de acuerdo con John Hight en que la mayoría de las respuestas publicadas son totalmente offtopic suponiendo que el OP especificó exactamente la necesidad de usar virtualenv .

Para mí, la respuesta fue runing following command in prompt mientras activaba virtualenv:

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

(observe que la parte 9.4 representa la versión y puede variar) y luego:

pip install psycopg2

va con la suposición de que has instalado postgres. Y si no, recuerda que la mejor y más recomendada solución es utilizar: Postgres.app


Para OS X El Captain (10.11.6) + brew + virtualenv + PostgreSQL 9.5 :

Después de instalar PostgreSQL 9.5 :

brew install [email protected]

Abra su terminal y ejecute:

export PATH=$PATH:/usr/local/opt/postgresql/@9.5/bin/ pip install psycopg2


Si está utilizando postgresql 9.4, el archivo se encuentra en

/usr/pgsql-9.4/bin/pg_config

El nombre del paquete es

postgresql94-9.4.9-1PGDG.rhel6.x86_64

para agregar pg_config a su RUTA, haga lo siguiente

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


Si no tiene que usar específicamente el controlador psycopg , cambie al controlador pg8000 . Es puro Python y menos meticuloso.


virtualenv es para paquetes de python. No creo que puedas contener postgres dentro de un virtualenv. Es probable que el mensaje de error que está viendo se deba a que aún no ha instalado postgres. El script de instalación de psycopg2 está buscando archivos postgres (en este caso, pg_config) y no los encuentra porque no está instalado. postgres no se puede instalar usando pip o virtualenv.


¡No olvide que su variable $ PATH en el entorno virtual! = Su variable global $ PATH. Puede confirmar esto con ''echo $ PATH'' en su virtualenv y también en un nuevo shell. Entonces, a menos que desee instalar PostgreSQL como una instancia única dentro de su entorno virtual (no es algo que valga la pena, imo), necesitará modificar la variable $ PATH dentro del virtualenv para incluir la ruta a su instalación global (que resuelve tu error pg_config faltante).

Estos son los pasos:

1.) En un nuevo shell, escribe ''which pg_config''. Esto devolverá el camino. Cópialo. En mi caso, el camino se veía así: /Applications/Postgres.app/Contents/Versions/9.3/bin

2.) De vuelta en su shell virtualenv, escriba ''export PATH = / your-path-to-pg_config: $ PATH''

3.) Luego, aún dentro del virtualenv, ''pip install psycopg2''

Si todo va según lo planeado, esto instalará psycopg2 dentro del entorno virtual, pero la instalación se referirá a su instalación global de PostgreSQL. En mi caso, esta instalación global se instaló a través de Postgres.App, de ahí la ruta. Prefiero este método de trabajo con psycopg2, ya que significa que puedo usar la base de datos fácilmente dentro de cualquier entorno virtual en lugar de solo dentro del entorno virtual definido.

Espero que esto ayude a cualquiera que llegue aquí. Para Google juice, aquí está el lenguaje de error explícito (y vago) que se devuelve cuando se encuentra con este problema:
El comando python setup.py egg_info falló con el código de error 1