Error: ningún módulo llamado psycopg2.extensions

86

Estoy tratando de configurar una base de datos PostgreSQL para mi proyecto django, lo cual creo que lo he hecho ahora gracias a las respuestas a mi última pregunta Problemas para configurar una base de datos postgreSQL para un proyecto django . Ahora estoy tratando de ejecutar el comando 'python manage.py runserver' en Terminal para activar mi host local, pero cuando ejecuto el comando, veo esta respuesta ...

Error: No module named psycopg2.extensions

No estoy seguro de lo que esto significa: he intentado descargar psycopg2 pero parece que no puedo encontrar una manera de descargar psycopg2 usando homebrew. He intentado easy_install, pip install y sudo, pero todos devuelven errores como este ...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

¿Cómo arreglar esto?

Cadena
fuente
No tienes un compilador instalado y necesitas uno para construir el paquete psycopg2. Si puede proporcionar detalles sobre su sistema operativo, la gente de aquí probablemente pueda ayudarlo con eso.
Ian Clelland
@IanClelland Gracias Ian. Estoy en Mac OS X 10.6.8. Tengo homebrew instalado si eso ayuda.
Jess
Compruebe lo que está utilizando intérprete del venv correcto.
Alex78191

Respuestas:

167

Lo primero que debe hacer es instalar las dependencias.

sudo apt-get build-dep python-psycopg2

Después de eso, entra en tu virtualenv y usa

pip install psycopg2-binary

Estos dos comandos deberían resolver el problema.

Fernando Muñoz
fuente
7
Debo decir que nunca volveré a usar nada más que pip, es mucho mejor :-)
Harry
11
Para Python 3,sudo apt-get build-dep python3-psycopg2
laike9m
7
¿Cuál es el punto de construir las dependencias con apt y luego instalar con pip? ¿Qué pasa con el comando único sudo apt-get install python-psycopg2? Funcionó bien para mí.
kdbanman
2
obtenido You must put some 'source' URIs in your sources.listal probar cualquiera de los comandos anteriores
Revolución para Mónica
2
@ nba2020: sudo apt-get ...? Estos son los requisitos previos de linux (debian / mint / ubuntu) para psycopg2-binary. Si usa Windows o algo así, debe buscar los requisitos previos de Windows para psycopg2-binary en su lugar y aplicarlos antes de instalar psycopg2-binary. O tal vez (no estoy seguro) puede omitir los requisitos previos e instalar psycopg2 en lugar de psycopg2-binary y podría funcionar. Sin embargo, psycopg2 (sin -binary) está obsoleto, por lo que será mejor si intenta instalar psycopg2-binary correctamente.
mirek
26
pip install psycopg2-binary

El paquete de ruedas psycopg2 cambiará de nombre a partir de la versión 2.8; para seguir instalando desde binario, utilice "pip install psycopg2-binary" en su lugar. Para obtener más información, consulte: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .

Charlie 木匠
fuente
Esto me funciona en ubuntu 18.04 y python 3. Gracias.
Danniel Little
Esto funciona para mí y tampoco requiere ningún permiso de root
Gianpaolo
Me alegro de que ayude. ^ _ ^
Charlie 木匠
1
Esto no me ayuda lo suficiente. En algún lugar de la historia he instalado psycopg2 y posterior (de: -r requirements.txt) correctamente psycopg2-binary. Todo funcionó "bien". Pero una vez que desinstalé psycopg2 (sin -binary) recibí el error "Ningún módulo llamado psycopg2.extensions". Desinstalar / instalar psycopg2-binary no me ayuda. Para mí, los requisitos previos no se instalaron (consulte la respuesta de @FernandoMunoz: apt install build-dep python-psycopg2). La instalación de estos paquetes Debian y más tarde (!) Psycopg2-binary me ha ayudado.
mirek
@mirek Gracias por el complemento.
Charlie 木匠
6

Para Django 2e python 3instalar psycopg2usando pip3:

pip3 install psycopg2
Alex Jolig
fuente
5

Lo instalé con éxito usando estos comandos:

sudo apt-get install libpq-dev python-dev
pip install psycopg2
hassan ketabi
fuente
5

Por macOS Mojavesolo correr pip install psycopg2-binary. Funciona bien para mí, versión de Python ->Python 3.7.2

Kanke
fuente
4

primera instalación apt-get install python-setuptools

entonces intenta easy_install psycopg2

usuario1667633
fuente
4

Esto es lo que me ayudó en Ubuntu si su python se instaló desde el instalador de Ubuntu. Hice esto después de intentar sin éxito 'apt-get install' y 'pip install':

En terminal:

sudo synaptic

luego, en el campo de búsqueda sináptico, escriba

psycopg2

escoger

python-psycopg2

márquelo para la instalación haciendo clic con el botón derecho del mouse y presione 'aplicar'. Por supuesto, si no ha instalado Synaptic, primero haga lo siguiente:

sudo apt-get install synaptic
arunas_t
fuente
2

En Python 3.4, mientras se encuentre en un entorno virtual, asegúrese de tener primero las dependencias de compilación:

sudo apt-get build-dep python3-psycopg2

Luego instálalo:

pip install psycopg2 
JJSanDiego
fuente
E: You must put some 'source' URIs in your sources.list
Cerin
2

En Alpine Linux (la mayoría de los contenedores docker) haga:

apk add postgresql-dev

Entonces:

pip install psycopg2-binary
Jelena Lazarevic
fuente
1

Usé la extensión después de solo importar psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])
fp
fuente
@fp Gracias por tu respuesta. ¿Cómo importaste psycopg2? ¿Usaste homebrew? Intenté ejecutar el comando 'import psycopg2' en mi Terminal pero devuelve 'ImportError: No module named psycopg2'.
Jess
Estoy usando ubuntu donde está listo para instalar sin compilar. El ejemplo que se muestra está en python. Para instalarlo en Windows, mira stickpeople.com/projects/python/win-psycopg Lo que quieres es instalarlo primero.
fp
@fp Gracias. Estoy en Mac, ¿existe una solución similar para Mac?
Jess
@fb Gracias. Lo intentaré :)
Jess
1

Parece que lo necesita gcc-4.0, y sería útil especificar el tipo y la versión de su sistema operativo.

Quizás esta pregunta te ayude un poco: Instalar GCC en Mac OS X Leopard sin instalar Xcode

Actualizar

Soy un usuario de Windows, por lo que no puedo probar su configuración, pero un rápido google señaló algunos enlaces más:

alexandrul
fuente
Gracias. Descargué e instalé GCC 10.6 ya que mi sistema operativo es 10.6.8. Luego ejecuté easy_install psycopg2 pero devolvió este error ... "no se encontraron directorios incluidos anteriormente que coincidan con 'doc / src / _build' no se puede ejecutar gcc-4.0: No existe ese archivo o error de directorio: el script de configuración salió con el error: comando ' gcc-4.0 'falló con el estado de salida 1 ". ¿Sabes por qué podría ser eso?
Jess
1

Encontré el No module named psycopg2.extensionserror al intentar ejecutar pip2 install psycopg2en una Mac que ejecuta Mavericks (10.9). No creo que mi seguimiento de la pila haya incluido un mensaje sobre gcc, y también incluyó una pista:

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

Busqué el pg_configarchivo en mi Postgres instalar y ha añadido la carpeta que lo contiene a mi camino: /Applications/Postgres.app/Contents/Versions/9.4/bin. Su ruta puede ser diferente, especialmente si tiene instalada una versión diferente de Postgres; solo buscaría hasta que encuentre la bin/carpeta. Después de hacer esto, la instalación funcionó.

Galen Long
fuente
1

prueba esto:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. esto es especialmente útil si se encuentra con un error de huevo

en instancias de aws ec2 si se encuentra con el error gcc; intente esto
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2

janakiram pulipati
fuente
1

Este funcionó para mi

python manage.py migrar

shree ..
fuente
1

Tuve ese problema al intentar ejecutar el script de Python como sudo, mientras que psycopg2 se instaló a través de pip3 en el directorio de mi propio usuario.

Logré resolver el problema por mí mismo eliminando la versión pip3 y simplemente instalándola a través de apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2
natalka
fuente
0

Compruebe si ha instalado psycopg2 si no

sudo apt-get install psycopg2

Instale las dependencias.

sudo apt-get build-dep python-psycopg2

Estos dos comandos deberían resolver el problema.

Jayakumar Bellie
fuente
0
pip3 install django-psycopg2-extension

Sé que llego tarde y hay muchas respuestas aquí que también resuelven el problema. Pero hoy también enfrenté este problema y nada de esto me ayuda. Luego encontré el comando mágico anterior que resuelve mi problema :-P. así que estoy publicando esto, ya que podría ser su caso también.
Codificación feliz.

Abhay Kumar
fuente