Ich habe versucht, postgres für ein Tutorial zu installieren, aber es pip
wird mir ein Fehler angezeigt :
pip install psycopg
Ein Fehler, den ich bekomme:
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'.
Wo ist pg_config
in meiner virtuellen Umgebung? Wie konfiguriere ich es? Ich verwende virtualenv, weil ich keine systemweite Installation von postgres möchte.
Antworten:
Wenn Sie auf dem Mac Postgres.app verwenden , befindet sich die Datei pg_config in Ihrem
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
Verzeichnis. Das muss Ihrem Systempfad hinzugefügt werden, um diesen Fehler wie folgt zu beheben:Wenn die aktuelle Postgres.app-Version beispielsweise 9.5 ist, lautet diese Exportzeile:
Bei neueren Versionen von Postgres.app (> 9.5?) Können Sie einfach "Neueste" anstelle der Versionsnummer hinzufügen, wie folgt:
quelle
9.4
.bash_profile
wenn Sie die Bash des Standardterminals verwenden. WENN Siezsh
diese Zeile an die.zshrc
Datei anhängen . All dies finden Sie in Ihrem Home-Verzeichnis. (nurls -la
)<current_version>
durchlatest
welche Punkte auf die zuletzt installierte Postgres-Version verwiesen wird. Mein Ordner sieht aus wie:ls /Applications/Postgres.app/Contents/Versions/
und es gibt9.5/ latest/
Auf einem Mac besteht die Lösung darin, Folgendes zu installieren
postgresql
:Unter CentOS besteht die Lösung darin, Folgendes zu installieren
postgresql-devel
:pg_config
ist impostgresql-devel
Paketquelle
Ich stimme John Hight voll und ganz zu, dass die meisten veröffentlichten Antworten völlig offtopisch sind, vorausgesetzt, das OP hat genau angegeben, dass virtualenv verwendet werden muss .
Für mich lief die Antwort wie folgt in der Eingabeaufforderung, während virtualenv aktiviert wurde:
(Beachten Sie, dass Teil 9.4 für Version steht und variieren kann)
oder wenn Sie die neueste installierte Version von Postgres verwenden möchten :
und dann:
geht erfolgreich voraus, wenn Sie postgres installiert haben. Wenn nicht, denken Sie daran, dass die beste und empfohlene Lösung die Verwendung von Postgres.app ist
quelle
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
Wenn Sie die neueste installierte Version von Postgres verwendenVergessen Sie nicht, dass Ihre $ PATH-Variable in der virtuellen Umgebung! = Ihre globale $ PATH-Variable ist. Sie können dies mit 'echo $ PATH' in Ihrer virtuellen Umgebung und auch in einer neuen Shell bestätigen. Sofern Sie PostgreSQL nicht als eindeutige Instanz in Ihrer virtuellen Umgebung installieren möchten (imo nicht sinnvoll), müssen Sie die Variable $ PATH in der virtuellen Umgebung so ändern, dass sie den Pfad zu Ihrer globalen Installation enthält (was auch der Fall ist) Beheben Sie Ihren fehlenden pg_config-Fehler.
Hier sind die Schritte:
1.) Geben Sie in einer neuen Shell 'which pg_config' ein. Dies gibt den Pfad zurück. Kopiere es. In meinem Fall sah der Pfad folgendermaßen aus: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) Geben Sie in Ihrer virtualenv-Shell 'export PATH = / your-path-to-pg_config: $ PATH' ein.
3.) Dann, immer noch in der virtuellen Umgebung, 'pip install psycopg2'
Wenn alles nach Plan verläuft, wird psycopg2 in der virtuellen Umgebung installiert, die Installation bezieht sich jedoch auf Ihre globale PostgreSQL-Installation. In meinem Fall wurde diese globale Installation über Postgres.App installiert, daher der Pfad. Ich bevorzuge diese Methode der Arbeit mit psycopg2, da ich die Datenbank problemlos in jeder virtuellen Umgebung verwenden kann und nicht nur in der definierten virtuellen Umgebung.
Hoffe das hilft jedem, der hier ankommt. Für Google Juice ist hier die explizite (und vage) Fehlersprache angegeben, die zurückgegeben wird, wenn Sie auf dieses Problem stoßen : Der
Befehl python setup.py egg_info ist mit Fehlercode 1 fehlgeschlagen
quelle
So konnte ich dieses Problem auf meinem Mac (OSX 10.9) lösen:
Ich habe beim Versuch einen CLANG-Fehler erhalten
pip install psycopg
(ein LLVM 5.1-Problem ), daher musste ich stattdessen psycopg mit diesem Befehl installieren:Es ähnelt der Lösung von Mingyu , aber es gibt genug Unterschiede, von denen ich dachte, dass es sich lohnt, sie zu teilen.
quelle
Dieser Fehler wird verursacht, wenn die Build-Tools die Postgresql-Bibliotheken nicht finden können.
Oft ist es erforderlich, psycopg2 anzuweisen, wie die Binärdatei pg_config zu finden ist. Sie können:
Fügen Sie den Pfad zu pg_config in Ihrem Shell-Pfad hinzu (/ usr / local / pgsql / bin /).
oder bearbeiten Sie die Datei setup.cfg im Quellordner psycopg2 und geben Sie den vollständigen Pfad zu pg_config in der Zeile an, die mit pg_config = beginnt
locate pg_config
herausfinden können, wo es sich befindet, oder einfach eingebenwhich pg_config
und den Pfad angeben sollten.Weniger häufig ist der Fehler darauf zurückzuführen, dass postgresql nicht auf Ihrem System installiert ist. Wenn ja, laden Sie postgres herunter und erstellen Sie es, oder laden Sie eine vorgefertigte psycopg2-Binärdatei für OS X herunter.
quelle
Für
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:Nach der Installation
PostgreSQL 9.5
:Öffnen Sie dann Ihr Terminal und führen Sie Folgendes aus:
quelle
Sie müssen den Pfad postgresql konfigurieren:
Danach müssen Sie die Anforderungen installieren:
quelle
virtualenv ist für Python-Pakete. Ich glaube nicht, dass Sie Postgres in einer virtuellen Umgebung enthalten können. Die angezeigte Fehlermeldung ist vermutlich darauf zurückzuführen, dass Sie postgres noch nicht installiert haben. Das Installationsskript von psycopg2 sucht nach Postgres-Dateien (in diesem Fall pg_config) und findet sie nicht, da sie nicht installiert sind. postgres kann nicht mit pip oder virtualenv installiert werden.
quelle
Unter Windows habe ich postgres manuell von http://www.enterprisedb.com/products-services-training/pgdownload#windows installiert . Danach funktioniert der gleiche Befehl.
quelle
Zusätzlich zu den Antworten von @bkev und @andi sollten Sie gemäß der Dokumentation auf Postgres.app Ihrem bash_profile auf dem Mac Folgendes hinzufügen:
Beachten Sie, dass es keine fest codierte Versionsnummer gibt. Ich wollte dies als Kommentar zu den obigen Antworten hinzufügen, aber ich habe nicht genug Repräsentanten dafür.
quelle
Wenn Sie postgresql 9.4 verwenden, befindet sich die Datei in
Der Name des Pakets lautet
Gehen Sie wie folgt vor, um Ihrem PATH pg_config hinzuzufügen
quelle
Wenn Sie den
psycopg
Treiber nicht speziell verwenden müssen, wechseln Sie zumpg8000
Treiber. Es ist reines Python und weniger pingelig.quelle
Unter Ubuntu brauchte ich nur das Postgres-Entwicklungspaket:
quelle
Meins befand sich in /Library/PostgreSQL/9.4/bin
quelle