Ich habe Probleme bei der Installation von psycopg2. Ich erhalte folgende Fehlermeldung, wenn ich pip install psycopg2
versuche:
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'.
----------------------------------------
Command python setup.py Egg_info failed with error code 1 in /tmp/pip-build/psycopg2
Aber das Problem ist pg_config
tatsächlich in meiner PATH
; es läuft ohne problem:
$ which pg_config
/usr/pgsql-9.1/bin/pg_config
Ich habe versucht, den Pfad pg_config zur setup.cfg
-Datei hinzuzufügen und sie mit den Quelldateien aufzubauen, die ich von ihrer Website heruntergeladen habe ( http://initd.org/psycopg/ ). Ich erhalte die folgende Fehlermeldung!
Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'
Aber es ist tatsächlich da !!!
Ich bin verblüfft über diese Fehler. Kann jemand bitte helfen?
Übrigens Sudo
alle Befehle. Auch ich bin auf RHEL 5.5.
pg_config
befindet sich in postgresql-devel
(libpq-dev
in Debian/Ubuntu, libpq-devel
von Cygwin/Babun.)
Unter Mac OS X habe ich es mit dem Paketmanager homebrew gelöst
brew install postgresql
Haben Sie python-dev installiert? Falls Sie dies bereits getan haben, installieren Sie auch libpq-dev
Sudo apt-get install libpq-dev python-dev
Aus dem Artikel: Wie installiert man psycopg2 unter virtualenv
Auch unter OSX. Installierte Postgress.app von http://postgresapp.com/ , hatte aber das gleiche Problem.
Ich habe pg_config
im Inhalt dieser App gefunden und das Verzeichnis zu $PATH
hinzugefügt.
Es war um /Applications/Postgres.app/Contents/Versions/latest/bin
. Das hat also funktioniert: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
.
apt-get build-dep python-psycopg2
Nur um es zusammenzufassen: Ich hatte genau das gleiche Problem. Nachdem ich eine Menge von stackoverflow-Posts und Online-Blogs gelesen hatte, war die endgültige Lösung für mich die folgende:
1) PostgreSQL (Entwicklung oder jede stabile Version) sollte vor der Installation von psycopg2 installiert werden.
2) Die Datei pg_config (diese Datei befindet sich normalerweise im Ordner bin des PostgreSQL-Installationsordners) PATH musste vor der Installation von psycopg2 explizit eingerichtet werden. In meinem Fall lautet die Installation PATH für PostgreSQL:
/opt/local/lib/postgresql91/
um den PFAD der pg_config-Datei explizit festzulegen, habe ich folgenden Befehl in mein Terminal eingegeben:
PATH=$PATH:/opt/local/lib/postgresql91/bin/
Dieser Befehl stellt sicher, dass beim Versuch, die Pipeline-Installation von psycopg2 auszuführen, der Pfad diesmal automatisch nach pg_config gesucht wird.
Ich habe auch einen vollständigen Fehler mit trace und dessen Lösung in meinem blog veröffentlicht, auf den Sie vielleicht verweisen möchten. Es ist für Mac OS X, aber das PATH-Problem pg_config ist generisch und auch für Linux anwendbar.
Auf Alpine ist die Bibliothek, die pg_config
enthält, postgresql-dev
. Führen Sie zur Installation Folgendes aus:
apk add postgresql-dev
Sudo apt-get install libpq-dev
funktioniert für mich unter Ubuntu 15.4
UPDATE /etc/yum.repos.d/CentOS-Base.repo, Abschnitte [base] und [updates]
ADD exclude = postgresql *
curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
yum install postgresql
yum install postgresql-devel
PATH=$PATH:/usr/pgsql-9.1/bin/
pip install psycopg2
Für diejenigen, die OS X ausführen, hat diese Lösung für mich funktioniert:
1) Installiere Postgres.app:
http://www.postgresql.org/download/macosx/
2) Öffnen Sie dann das Terminal und führen Sie diesen Befehl aus. Ersetzen Sie an der Stelle, an der {{version}} steht, die Postgres-Versionsnummer:
export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/{{version}}/bin
z.B.
export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.4/bin
Dies hat bei CentOS für mich funktioniert, zuerst installieren:
Sudo yum install postgresql postgresql-devel python-devel
Verwenden Sie unter Ubuntu einfach die gleichwertigen apt-get-Pakete.
Sudo apt-get install postgresql postgresql-dev python-dev
Fügen Sie jetzt den Pfad zu Ihrem Postgresql-Bin-Verzeichnis in Ihre Pip-Installation ein. Dies sollte entweder für Debain oder für RHEL-basiertes Linux funktionieren:
Sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2
Stellen Sie sicher, dass Sie den richtigen Pfad angeben. Das ist alles :)
Die Lösung von ALi funktionierte für mich, aber ich hatte Probleme, den Speicherort für den Ordner zu finden. Unter Mac OS X können Sie den Pfad schnell finden, indem Sie psql öffnen (in der oberen Menüleiste befindet sich ein schneller Link). Dies öffnet ein separates Terminalfenster und in der zweiten Zeile wird der Pfad Ihrer Postgres-Installation folgendermaßen aussehen:
My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;
Ihre pg_config-Datei befindet sich in diesem bin-Ordner. Stellen Sie daher vor der Installation von psycopg2 den Pfad der Datei pg_config ein:
PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/
oder für neuere Version:
PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin
Dann installieren Sie psycopg2.
Versuchen Sie es zu PATH hinzuzufügen:
PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2
Sie müssen Ihren Pip aktualisieren, bevor Sie psycopg2 installieren. Verwenden Sie diesen Befehl
pip install --upgrade pip
Das Problem in Cent OS 7 wurde gelöst durch:
export PATH=$PATH:/usr/pgsql-9.5/bin
stellen Sie sicher, dass Ihre PostgreSql-Version der richtigen Version oben entspricht.
Auf Linux Mint arbeitete Sudo apt-get install libpq-dev
für mich.
Unter Windows Möglicherweise möchten Sie den Windows-Port von Psycopg installieren, der in der Dokumentation von psycopg empfohlen wird.
Sudo yum install postgresql-devel (centos6X)
pip install psycopg2 == 2.5.2
Hier für die Vollständigkeit von OS X: Wenn Sie PostgreSQL von MacPorts installieren, befindet sich pg_config in /opt/local/lib/postgresql94/bin/pg_config
.
Bei der Installation von MacPorts wurde /opt/local/bin
bereits zu PATH hinzugefügt.
So wird das Problem behoben:
$ Sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config
pip install psycopg2
kann pg_config
jetzt ohne Probleme ausführen.
Das funktioniert für mich:
Sudo apt-get install libpq-dev python-dev
Unter Mac OS X und Wenn Sie Postgres App verwenden ( http://postgresapp.com/ ):
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
In diesem Befehl müssen Sie keine Version von Postgres angeben. Es wird immer auf das Neueste hingewiesen.
und TU
pip install psycopg2
P.S: Wenn Changes nicht berücksichtigt wird, müssen Sie möglicherweise die Terminal-/Eingabeaufforderung neu starten
So gelang es mir, psycopg2 zu installieren
$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ python setup.py install
Auf Gentoo müssen Sie Folgendes ausführen
# Install postgresql client libraries
Sudo emerge postgresql-base
Unter MacOS ist es am einfachsten, die richtige Binärdatei zu verknüpfen, die sich im Postgres-Paket befindet.
Sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Dies ist ziemlich harmlos, und alle Anwendungen können es bei Bedarf systemweit verwenden.
stellen Sie für CentOS/RedHat sicher, dass /etc/alternatives/pgsql-pg_config
ein nicht gebrochener Symlink ist
Für alle, bei denen dieses Problem auftritt, die an einer Django -Anwendung arbeiten und auf AWS bereitstellen, hat die in diesem Lernprogramm beschriebene Methode für mich funktioniert: https://realpython.com/deploying-a-Django-app -und-postgresql-to-aws-elastische-Bohnenstange /
Hier ist die Erklärung des Autors für den Fall, dass die folgende Fehlermeldung angezeigt wird:
Error: pg_config executable not found.
Das Problem ist, dass wir versucht haben, psycopy2 (die Postgres Python -Bindungen) zu installieren, aber wir müssen auch die Postgres-Client-Treiber installieren. Da sie nicht standardmäßig installiert sind, müssen sie zuerst installiert werden.
eb liest benutzerdefinierte .config-Dateien aus einem Ordner namens ".ebextensions" im Stammverzeichnis Ihres Projekts. Mit diesen CONFIG-Dateien können Sie Pakete installieren, beliebige Befehle ausführen und/oder Umgebungsvariablen festlegen. Dateien im Verzeichnis ".ebextensions" müssen der JSON- oder YAML-Syntax entsprechen und werden in alphabetischer Reihenfolge ausgeführt.
Als Erstes müssen Sie einige Pakete installieren, damit unser Befehl pip install erfolgreich ausgeführt wird. Dazu erstellen wir eine Datei mit dem Namen .ebextensions/01_packages.config:
packages:
yum:
git: []
postgresql93-devel: []
libjpeg-turbo-devel: []
EC2-Instanzen führen Amazon Linux aus, eine Redhat-Variante, sodass wir yum verwenden können, um die benötigten Pakete zu installieren. Im Moment werden wir nur drei Pakete installieren - git, den Postgres-Client und libjpeg for Pillow.
Windows:
PFAD: C:\Programme\PostgreSQL\9.5\bin;
Die Installation von python-psycopg2
hat es für mich unter Arch Linux gelöst:
pacman -S python-psycopg2
Ich bin mir ziemlich sicher, dass Sie das gleiche "Problem" wie ich erlebt haben, deshalb biete ich Ihnen die extrem einfache Lösung ...
In Ihrem Fall ist der Pfad, den Sie zu $ PATH (oder als Befehlsparameter) hinzufügen müssen:
/usr/pgsql-9.1/bin/pg_config
nicht
/usr/pgsql-9.1/bin
Z.B. Wenn Sie anschließend das Skript python setup.py ausführen, führen Sie es folgendermaßen aus:
python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build
Wahrscheinlich zu spät, aber immer noch die einfachste Lösung.
Später bearbeiten:
Unter weiterem Test habe ich herausgefunden, dass Sie den Pfad zu pg_config im Formular hinzufügen
/usr/pgsql-9.1/bin
(ohne/pg_config nach ...../bin) und führen Sie den pip install-Befehl aus, der funktionieren wird.
Wenn Sie sich jedoch dazu entschließen, der Angabe zum Ausführen von python setup.py zu folgen, müssen Sie den Pfad mit/pg_config nach ...../bin angeben, d. H.
python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build
Wenn Sie es unter Verwendung von brew auf MAC Mojave installiert haben, tun Sie brew info <your postgres>
Es werden Ihnen alle Umgebungsvariablen angezeigt, die Sie festlegen sollten. Kopieren Sie einfach diese Befehle und starten Sie die Shell neu.
Ich habe festgestellt, dass diese Seite die besten Anweisungen für die Installation von PostgreSQL auf meinem Mac bietet und dass der Befehl pip install einwandfrei funktioniert hat:
https://www.codefellows.org/blog/three-battle-tested-ways-to-install-postgresql