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?


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.


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 .


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

5

Lo instalé con éxito usando estos comandos:

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5

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


4

primera instalación apt-get install python-setuptools

entonces intenta easy_install psycopg2


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

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 

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

1

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

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@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:


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


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



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


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.