Ich arbeite an einem Django-Projekt mit virtualenv und verbinde es mit der lokalen Postgres-Datenbank. Wenn ich das Projekt starte, heißt es:
ImportError: No module named psycopg2.extensions
dann habe ich diesen Befehl verwendet, um zu installieren
pip install psycopg2
dann gibt es während der Installation folgenden Fehler.
Downloading/unpacking psycopg2==2.4.4
Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2
Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/psycopg2.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
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log
python
django
postgresql
Muhammad Taqi
quelle
quelle
postgresql-server-X.Y
allein nicht helfen würde, da nur die Server-Binärdateien, Bibliotheken und Datendateien installiert werden, nicht die Entwicklungsdateien (die im oben genannten Paket enthalten sind).Antworten:
Verwenden Sie die folgenden Befehle, um den Fehler zu beheben:
dann feuern:
und zuletzt:
quelle
sudo apt-get install python-dev
, damit es endlich funktioniertsudo apt-get install libpq-dev
hat für mich gearbeitet!sudo apt-get install python3-psycopg2
, um zu Python3Ich führe diesen Befehl einfach als Root vom Terminal aus aus und das Problem ist gelöst.
oder
quelle
libpq-dev
undpython-dev
tat die notwendige Magiepostgis
? wootInstallieren Sie einfach libpq-dev
quelle
Für mich löste dieser einfache Befehl das Problem:
Dann kann ich tun:
quelle
Für Python 3 habe ich:
und dann konnte ich tun:
quelle
Sie haben die Verpackung für psycopg2 geändert. Die Installation der Binärversion hat dieses Problem für mich behoben. Die obigen Antworten halten immer noch an, wenn Sie die Binärdatei selbst kompilieren möchten.
Siehe http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8 .
Und http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Wenn Sie also keine eigene Binärdatei kompilieren müssen, verwenden Sie:
quelle
psycopg2-binary
darf nicht in der Produktion verwendet werden, da dies zu Fehlern führen kann.psycopg2-binary
sollte nicht in der Produktion verwendet werden: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Kopierter Text: Das psycopg2-Binärpaket ist für Anfänger gedacht, die ohne Notwendigkeit mit Python und PostgreSQL spielen möchten Erfüllen Sie die Build-Anforderungen. Wenn Sie ein von psycopg2 abhängiges Veröffentlichungspaket verwalten, sollten Sie 'psycopg2-binary' nicht als Modulabhängigkeit verwenden. Für die Verwendung in der Produktion wird empfohlen, die Quelldistribution zu verwenden.)Sie müssen postgresql-server-dev-XY einrichten, in dem die Serverversion von XY your ist. Anschließend werden libpq-dev und andere Servervariablen in Modulen für die serverseitige Entwicklung installiert. In meinem Fall war es
In deinem Fall
quelle
Ich habe eine virtuelle Umgebung unter Ubuntu 18.04 verwendet und da ich sie nur als Client installieren wollte, musste ich nur Folgendes tun:
Und ohne Probleme installiert. Natürlich können Sie die Binärdatei wie in anderen Antworten angegeben verwenden, aber ich habe diese Lösung bevorzugt, da sie in einer Datei "require.txt" angegeben wurde.
quelle