Estaba intentando instalar postgres para un tutorial, pero pip
me da un error:
pip install psycopg
Un fragmento de error me sale:
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
mi virtualenv? ¿Cómo configurarlo? Estoy usando virtualenv porque no quiero una instalación de postgres en todo el sistema.
Respuestas:
En Mac, si está usando Postgres.app , el archivo pg_config está en su
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
directorio. Eso deberá agregarse a la ruta de su 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
Con versiones más recientes de Postgres.app (> 9.5?), Simplemente puede agregar "más reciente" en lugar del número de versión, así:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
fuente
9.4
.bash_profile
si se usa el bash estándar de Terminal. SI usa,zsh
agregue esta línea al.zshrc
archivo. Todo esto lo encontrarás en tu directorio de inicio. (solols -la
)<current_version>
conlatest
qué apunta a la última versión instalada de Postgres. Mi carpeta se ve así:ls /Applications/Postgres.app/Contents/Versions/
y da9.5/ latest/
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 elpostgresql-devel
paquetefuente
Estoy totalmente de acuerdo con john hight en que la mayoría de las respuestas publicadas son totalmente fuera de tema, asumiendo que el OP especificó exactamente la necesidad de usar virtualenv .
Para mí, la respuesta fue ejecutar el siguiente comando en el símbolo del sistema mientras tenía activado virtualenv:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(observe que la parte 9.4 significa versión y puede variar)
o si desea utilizar la última versión instalada de Postgres:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
y entonces:
pip install psycopg2
va con éxito asumiendo que ha instalado postgres. Y si no es así, recuerda que la mejor y recomendada solución es usar: Postgres.app
fuente
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
si desea utilizar la última versión instalada de Postgres¡No olvide que su variable $ PATH en el entorno virtual! = Su variable $ PATH global. Puede confirmar esto con 'echo $ PATH' en su virtualenv y también en un nuevo shell. Por lo tanto, a menos que desee instalar PostgreSQL como una instancia única dentro de su entorno virtual (no es algo que valga la pena hacer, en mi opinión), deberá modificar la variable $ PATH dentro de virtualenv para incluir la ruta a su instalación global (que resuelva su error pg_config faltante).
Estos son los pasos:
1.) En un nuevo shell, escriba 'which pg_config'. Esto devolverá el camino. Cópialo. En mi caso, la ruta 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, todavía 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 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 trabajar con psycopg2, ya que significa que puedo usar la base de datos fácilmente dentro de cualquier virtualenv 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 muestra cuando se encuentra con este problema: El
comando python setup.py egg_info falló con el código de error 1
fuente
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
Recibí un error CLANG cuando lo intenté
pip install psycopg
(un problema LLVM 5.1 ), así que tuve que instalar psycopg con este comando en su lugar:ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Es similar a la solución de Mingyu , pero hay suficientes diferencias que pensé que valía la pena compartir.
fuente
Este error se produce cuando las herramientas de compilación no pueden encontrar las bibliotecas de Postgresql.
A menudo es necesario indicar a psycopg2 cómo encontrar el binario pg_config, puede:
agregue la ruta a pg_config en su ruta de shell (/ usr / local / pgsql / bin /)
o edite el archivo setup.cfg en la carpeta fuente de psycopg2 y proporcione la ruta completa a pg_config en la línea que comienza con pg_config =
locate pg_config
para averiguar dónde reside, o simplemente escribirwhich pg_config
y debería indicarle la ruta.Con menos frecuencia, el error proviene de no tener postgresql instalado en su sistema. Si es así, descargue y compile postgres, o descargue un binario psycopg2 prediseñado para OS X.
fuente
Para
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:Después de instalar
PostgreSQL 9.5
:brew install postgresql@9.5
Luego, abre tu terminal y ejecuta:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/ pip install psycopg2
fuente
debes configurar la ruta postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
después, debe instalar los requisitos:
pip3 install -r requirements
fuente
virtualenv es para paquetes de Python. No creo que puedas contener postgres dentro de un virtualenv. El mensaje de error que está viendo es probablemente porque aún no ha instalado Postgres. El script de instalación de psycopg2 busca archivos de postgres (en este caso pg_config) y no los encuentra porque no está instalado. postgres no se puede instalar usando pip o virtualenv.
fuente
En Windows, instalé Postgres manualmente desde http://www.enterprisedb.com/products-services-training/pgdownload#windows . Después de eso, funciona el mismo comando.
fuente
Además de las respuestas proporcionadas por @bkev y @andi, de acuerdo con la documentación de 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 representante para esto.
fuente
Si está utilizando postgresql 9.4, el archivo se encuentra en
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/
fuente
Si no tiene que usar el
psycopg
controlador específicamente, cambie alpg8000
controlador. Es Python puro y menos quisquilloso.fuente
En Ubuntu solo necesitaba el paquete de desarrollo de postgres:
sudo apt-get install postgresql-server-dev-all
fuente
El mío estaba ubicado en /Library/PostgreSQL/9.4/bin
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
fuente