Fehler: Kein Modul mit dem Namen psycopg2.extensions

85

Ich versuche, eine PostgreSQL-Datenbank für mein Django-Projekt einzurichten, was ich jetzt dank der Antworten auf meine letzte Frage getan habe. Probleme beim Einrichten einer PostgreSQL-Datenbank für ein Django-Projekt . Ich versuche jetzt, den Befehl 'python manage.py runserver' im Terminal auszuführen, um meinen lokalen Host zu starten, aber wenn ich den Befehl ausführe, wird diese Antwort angezeigt ...

Error: No module named psycopg2.extensions

Ich bin mir nicht sicher, was dies bedeutet. Ich habe versucht, psycopg2 herunterzuladen, kann aber anscheinend keine Möglichkeit finden, psycopg2 mit Homebrew herunterzuladen. Ich habe easy_install, pip install und sudo ausprobiert, aber alle geben Fehler wie diesen zurück ...

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

Wie kann ich das beheben?

Jess
quelle
Sie haben keinen Compiler installiert und benötigen einen, um das psycopg2-Paket zu erstellen. Wenn Sie Details zu Ihrem Betriebssystem angeben können, können Ihnen die Leute hier wahrscheinlich dabei helfen.
Ian Clelland
@ IanClelland Danke Ian. Ich bin unter Mac OS X 10.6.8. Ich habe Homebrew installiert, wenn das hilft.
Jess
Überprüfen Sie, was Sie für einen Dolmetscher verwenden.
Alex78191

Antworten:

167

Als erstes müssen Sie die Abhängigkeiten installieren.

sudo apt-get build-dep python-psycopg2

Danach gehen Sie in Ihre virtuelle Umgebung und verwenden

pip install psycopg2-binary

Diese beiden Befehle sollten das Problem lösen.

Fernando Munoz
quelle
7
Ich muss sagen, dass ich nie wieder etwas anderes als Pip verwenden werde, es ist so viel schöner :-)
Harry
11
Für Python 3,sudo apt-get build-dep python3-psycopg2
laike9m
7
Was bringt es, die Abhängigkeiten mit apt zu erstellen und dann mit pip zu installieren? Was ist los mit dem einzelnen Befehl sudo apt-get install python-psycopg2? Es hat gut funktioniert für mich.
Kdbanman
2
You must put some 'source' URIs in your sources.listIch habe beim Ausprobieren eines der oben genannten Befehle
Revolucion für Monica
2
@ nba2020: sudo apt-get ...? Dies sind Linux-Voraussetzungen (debian / mint / ubuntu) für psycopg2-binary. Wenn Sie Windows oder ähnliches verwenden, sollten Sie stattdessen die Windows-Voraussetzungen für psycopg2-binary finden und diese anwenden, bevor Sie psycopg2-binary installieren. Oder vielleicht (ich bin mir nicht sicher) können Sie die Voraussetzungen überspringen und psycopg2 anstelle von psycopg2-binary installieren, und es könnte funktionieren. Psycopg2 (ohne -binary) ist jedoch veraltet. Daher ist es besser, wenn Sie versuchen, psycopg2-binary korrekt zu installieren.
Mirek
26
pip install psycopg2-binary

Das Psycopg2-Radpaket wird ab Version 2.8 umbenannt. Um die Installation von der Binärdatei aus fortzusetzen, verwenden Sie stattdessen "pip install psycopg2-binary". Weitere Informationen finden Sie unter: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .

Charlie 木匠
quelle
Dies funktioniert für mich unter Ubuntu 18.04 und Python 3. Danke.
Danniel Little
Dies funktioniert für mich und erfordert auch keine Root-Erlaubnis
Gianpaolo
Ich bin froh, dass es hilft. ^ _ ^
Charlie 木匠
1
Das hilft mir nicht genug. Irgendwo in der Geschichte habe ich psycopg2 und später (von: -r require.txt) richtig psycopg2-binary installiert. Alles hat "gut" funktioniert. Nachdem ich psycopg2 (ohne -binary) deinstalliert hatte, erhielt ich den Fehler "Kein Modul mit dem Namen psycopg2.extensions". Psycopg2-binary deinstallieren / installieren hilft mir nicht. Für mich wurden die Voraussetzungen nicht installiert (siehe Antwort von @FernandoMunoz: apt install build-dep python-psycopg2). Die Installation dieser Debian-Pakete und später (!) Psycopg2-binary hat mir geholfen.
Mirek
@mirek Danke für die Ergänzung.
Charlie, 3.
6

Für Django 2und python 3Installation psycopg2mit pip3:

pip3 install psycopg2
Alex Jolig
quelle
5

Ich habe es erfolgreich mit folgenden Befehlen installiert:

sudo apt-get install libpq-dev python-dev
pip install psycopg2
Hassan Ketabi
quelle
5

Für macOS Mojaveeinfach laufen pip install psycopg2-binary. Funktioniert gut für mich, Python-Version ->Python 3.7.2

Kanke
quelle
4

zuerst installieren apt-get install python-setuptools

dann versuche es easy_install psycopg2

user1667633
quelle
4

Dies hat mir unter Ubuntu geholfen, wenn Ihr Python vom Ubuntu-Installationsprogramm installiert wurde. Ich habe dies getan, nachdem ich erfolglos 'apt-get install' und 'pip install' ausprobiert hatte:

Im Terminal:

sudo synaptic

dann in synaptisches Suchfeld schreiben

psycopg2

wählen

python-psycopg2

Markieren Sie es für die Installation mit der rechten Maustaste und klicken Sie auf "Übernehmen". Wenn Sie synaptic nicht installiert haben, gehen Sie zunächst wie folgt vor:

sudo apt-get install synaptic
arunas_t
quelle
2

Stellen Sie in Python 3.4 in einer virtuellen Umgebung sicher, dass Sie zuerst die Build-Abhängigkeiten haben:

sudo apt-get build-dep python3-psycopg2

Dann installieren Sie es:

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

Unter Alpine Linux (die meisten Docker-Container) tun Sie Folgendes:

apk add postgresql-dev

Dann:

pip install psycopg2-binary
Jelena Lazarevic
quelle
1

Ich habe die Erweiterung verwendet, nachdem ich nur psycopg2 importiert hatte:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])
fp
quelle
@fp Danke für deine Antwort. Wie haben Sie psycopg2 importiert? Hast du Homebrew benutzt? Ich habe versucht, den Befehl 'import psycopg2' in meinem Terminal auszuführen, aber er gibt 'ImportError: Kein Modul namens psycopg2' zurück.
Jess
Ich verwende Ubuntu, wo es ohne Kompilieren installiert werden kann. Das gezeigte Beispiel ist in Python. So installieren Sie in den Fenstern zu sehen stickpeople.com/projects/python/win-psycopg Was Sie wollen , ist es zuerst zu installieren.
fp
@fp Danke. Ich bin auf einem Mac - gibt es eine ähnliche Lösung für einen Mac?
Jess
@fb Danke. Ich werde es versuchen :)
Jess
1

Es scheint, dass Sie benötigen gcc-4.0, und es wäre hilfreich, Ihren Betriebssystemtyp und Ihre Version anzugeben.

Vielleicht hilft Ihnen diese Frage ein bisschen: Installieren von GCC unter Mac OS X Leopard ohne Installation von Xcode

Aktualisieren

Ich bin ein Windows-Benutzer, daher kann ich Ihr Setup nicht testen, aber ein kurzer Blick auf Google zeigte auf einige weitere Links:

alexandrul
quelle
Vielen Dank. Ich habe GCC 10.6 heruntergeladen und installiert, da mein Betriebssystem 10.6.8 ist. Ich habe dann easy_install psycopg2 ausgeführt, aber es hat diesen Fehler zurückgegeben ... "Es wurden keine zuvor enthaltenen Verzeichnisse gefunden, die mit 'doc / src / _build' übereinstimmen. Gcc-4.0 kann nicht ausgeführt werden: Kein solcher Datei- oder Verzeichnisfehler: Setup-Skript mit Fehler: Befehl beendet. ' gcc-4.0 'fehlgeschlagen mit Exit-Status 1 ". Weißt du warum das sein könnte?
Jess
1

No module named psycopg2.extensionsBeim Versuch, pip2 install psycopg2auf einem Mac mit Mavericks (10.9) ausgeführt zu werden, ist der Fehler aufgetreten . Ich glaube nicht, dass mein Stack-Trace eine Nachricht über gcc und einen Hinweis enthielt:

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

Ich habe pg_configin meiner Postgres-Installation nach der Datei gesucht und den Ordner, der sie enthält, meinem Pfad hinzugefügt : /Applications/Postgres.app/Contents/Versions/9.4/bin. Ihr Pfad kann anders sein, insbesondere wenn Sie eine andere Version von Postgres installiert haben. Ich würde mich nur umsehen, bis Sie den bin/Ordner gefunden haben. Danach funktionierte die Installation.

Galen Long
quelle
1

Versuchen Sie Folgendes :
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. Dies ist besonders hilfreich, wenn Sie auf einen Eierfehler stoßen

auf aws ec2-Instanzen, wenn ein gcc-Fehler auftritt; Versuchen Sie dies
1. sudo yum installiere gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip installiere psycopg2

Janakiram Pulipati
quelle
1

Dieser hat für mich gearbeitet

python manage.py migrieren

shree ..
quelle
1

Ich hatte ein solches Problem beim Versuch, Python-Skript als Sudo auszuführen, während psycopg2 über pip3 in das Verzeichnis meines eigenen Benutzers installiert wurde.

Ich habe es geschafft, das Problem selbst zu beheben, indem ich die pip3-Version entfernt und sie einfach über apt installiert habe:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2
Natalka
quelle
0

Überprüfen Sie, ob Sie psycopg2 installiert haben, wenn nicht

sudo apt-get install psycopg2

Installieren Sie die Abhängigkeiten.

sudo apt-get build-dep python-psycopg2

Diese beiden Befehle sollten das Problem lösen.

Jayakumar Bellie
quelle
0
pip3 install django-psycopg2-extension

Ich weiß, dass ich zu spät komme und es gibt hier oben viele Antworten, die auch das Problem lösen. Aber heute war ich auch mit diesem Problem konfrontiert und nichts davon hilft mir. Dann fand ich den obigen magischen Befehl, der mein Problem löst :-P. Also poste ich dies, wie es auch für Sie der Fall sein könnte.
Viel Spaß beim Codieren.

Abhay Kumar
quelle