virtualenv - modulenotfounderror - psycopg2 connect
Instalar psycopg2 en virtualenv cuando PostgreSQL no está instalado en el sistema de desarrollo (8)
Como nunca tuve que instalar la base de datos postgresql en este servidor, instalé las siguientes bibliotecas en la versión Ubuntu 14_04 antes de ejecutar pip install psycopg2 en el mismo servidor.
apt-get install libpq-dev python-dev y luego ejecutado pip install psycopg2 dentro de virtual env.
Salida Recopilación de psycopg2 Uso de caché psycopg2-2.6.1.tar.gz Creación de ruedas para los paquetes recopilados: psycopg2 Ejecución de setup.py bdist_wheel para psycopg2 Almacenado en el directorio: /root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329 Correctamente psycopg2 integrado Instalación de paquetes recolectados: psycopg2 Instalado con éxito psycopg2-2.6.1
¿Es posible instalar psycopg2
en un virtualenv
cuando PostgreSQL no está instalado en mi sistema de desarrollo, MacBook Pro con OS X 10.6?
Cuando ejecuto pip install psycopg2
desde mi virtualenv
, recibí el error que se muestra a continuación.
Intento conectarme a una base de datos heredada en un servidor usando Django, y preferiría no instalar PostgreSQL en mi sistema de desarrollo si es posible.
¿Por qué no instalar PostgreSQL?
Recibí un error al instalar PostgreSQL usando homebrew. Tengo Xcode4 y solo Xcode4 instalado en mi MacBook Pro y estoy pensando que está relacionado con la ausencia de gcc 4.0. Sin embargo, este es un problema para otra pregunta de StackOverflow.
Actualización a las 8:37 AM del 12 de abril de 2011: aún me gustaría saber si esto es posible sin instalar PostgreSQL en mi MacBook Pro. Sin embargo, ejecuté la brew update
y forcé una reinstalación de ossp-uuid con la brew install --force ossp-uuid
y ahora brew install postgresql
works. Con PostgreSQL instalado con éxito, pude pip install psycopg2
desde mi virtualenv.
Error de pip install psycopg2
$ pip install psycopg2
Downloading/unpacking psycopg2
Running setup.py egg_info for package 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''.
Complete output from command python setup.py egg_info:
running egg_info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
warning: manifest_maker: standard file ''-c'' not found
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
Storing complete log in /Users/matthew/.pip/pip.log
Investigación preliminar
A continuación se encuentran los artículos que leí como investigación preliminar:
- Instalar psycopg2 para usar Django con PostgreSQL en OS X
- Instalando psycopg2 en OS X
- Usando psycopg2 con virtualenv en Ubuntu JauntyLucid
- Postgres, psycopg2, virtualenv instalan sugerencias
Lo resolví en MAC OSX usando:
$ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2
$ tar xfv postgresql-9.5.3.tar.bz2
$ cd postgresql-9.5.3
$ ./configure
$ make
$ cd src/bin/pg_config
$ export PATH=`pwd`:"$PATH"
$ pip install psycopg2
Necesita instalar el paquete python-dev
para hacer uso de las extensiones de python como psycopg2
. No sé cómo instalar paquetes en mac, pero ejecuto los siguientes comandos para instalar un paquete python en mi máquina Ubuntu.
sudo apt-get install python-dev
O
sudo apt-get install python3-dev
si está usando Python3.x.
Una vez que la instalación haya finalizado, ejecute el siguiente comando dentro de su entorno virtual.
pip install psycopg2
No necesita instalar PostgreSQL completo: solo necesita las bibliotecas del lado del cliente.
Utilizando el método que describió en su actualización del 12 de abril, pude instalar PostgreSQL (+1). Tenga en cuenta que originalmente estaba ejecutando Python 2.7.1 (32 bits) y homebrew arrojó varios errores y advertencias con respecto al uso de una versión de 32 bits de Python. Desde entonces, cambié la versión de 2.7/26 bits de 64/32 y funciona como un campeón.
Con respecto a pyscopg2, pude instalarlo en mi entorno virtual desde el origen editando setup.cfg. Configuro pg_config para corregir la ruta dentro de Bodega de homebrew (pg_config = / usr / local / Cellar / postgresql / 9.0.4 / bin / pg_config). Después de guardar los cambios, ejecuté la instalación de python setup.py sin problemas. Vale la pena señalar que no configuré la configuración de Python predeterminada de Mac en 32 bits. Usé el nuevo 64 bit de principio a fin.
Después de revisar parte de la documentación, creo que si agregué la ruta postgresql de homebrew a la ruta del sistema, podría haber usado pip para instalarla.
Referencia:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html
Actualización 6-8-2011:
Mientras transfería un proyecto escrito en OS X a Windows 7, descubrí que también tenía que instalar PostgreSQL en Windows. Esto terminó creando otro usuario en mi pantalla de inicio y otras cosas que simplemente no me gustó. Mientras hacía algunas excavaciones, encontré los controladores de Windows para PostgreSQL here . Desde entonces he desinstalado el PostgreSQL completo e instalado los controladores ODBC que, hasta ahora, funcionan muy bien.
Para abordar la pregunta original, después de hacer un poco más de excavación, creo que encontré el ODBC equivalente para OS X here . No he tenido la oportunidad de probarlos, pero el concepto funciona muy bien en Windows 7. Lo actualizaré cuando tenga la oportunidad de probarlos. Hasta entonces, espero que esto ayude.
psycopg depende del comando pg_config
, y si no lo tiene, no puede instalar psycopg.
Si la instalación del sistema es un problema para usted, ¿por qué no intenta compilar PostgreSQL e incluir archivos bin generados en su $ PATH? Me gusta:
export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2
apt-get install libpq-dev
me ayudó en Debian Squeeze
apt-get install libpq-dev
me ayudó en Debian Squeeze también. Después de eso, pip install psycopg2. Me enfrenté al problema de pg_config no encontrado problema cuando estaba configurando mi entorno en heroku, ahora está funcionando bien.