Ich habe Probleme bei der Installation von psycopg2. Ich erhalte die folgende Fehlermeldung, wenn ich es versuche pip install psycopg2
:
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 pg_config
liegt tatsächlich in meinem PATH
; es läuft ohne probleme:
$ which pg_config
/usr/pgsql-9.1/bin/pg_config
Ich habe versucht, den Pfad pg_config zur setup.cfg
Datei hinzuzufügen und ihn mit den Quelldateien zu erstellen, die ich von der Website ( http://initd.org/psycopg/ ) heruntergeladen habe, und 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 mir bitte jemand helfen?
Übrigens habe ich sudo
alle Befehle. Auch ich bin auf RHEL 5.5.
sudo
,$PATH
wird geändert. Können Sie bitte Ihren $ PATH als root überprüfen?ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_config
renne ich und alles in Ordnung!Antworten:
pg_config
ist inpostgresql-devel
(libpq-dev
in Debian / Ubuntu,libpq-devel
auf Centos / Cygwin / Babun.)quelle
libpq-dev
auf Ubuntu Lucid (10.04). Vielen Dank im Voraus.pg_config
von postgress.app ist bei/Applications/Postgres.app/Contents/Versions/<your version>/bin
(Mac OS X)libpqxx-devel
auf Fedora.sudo apt-get install libpq-dev
arbeitete für mich auf UbuntuUnter Mac OS X habe ich es mit dem Homebrew- Paketmanager gelöst
quelle
brew
Befehl funktioniert.brew link postgresql
homebrew
.Hast du installiert
python-dev
? Wenn Sie bereits haben, versuchen Sie auch zu installierenlibpq-dev
Aus dem Artikel: So installieren Sie psycopg2 unter virtualenv
quelle
Python.h: No such file or directory
apt-get install -y gcc
Auch unter OSX. Installierte Postgress.app von http://postgresapp.com/ , hatte aber das gleiche Problem.
Ich fand
pg_config
in den Inhalten dieser App und fügte das Verzeichnis hinzu$PATH
.Es war um
/Applications/Postgres.app/Contents/Versions/latest/bin
. Das hat also funktioniert :export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
.quelle
PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Am Alpen, die Bibliothek enthält
pg_config
istpostgresql-dev
. Führen Sie zum Installieren Folgendes aus:quelle
Dies hat bei CentOS bei mir funktioniert. Zuerst installieren:
Verwenden Sie unter Ubuntu einfach die entsprechenden apt-get-Pakete.
Fügen Sie jetzt den Pfad zu Ihrem postgresql-Binärverzeichnis bei Ihrer Pip-Installation hinzu. Dies sollte entweder für Debain- oder RHEL-basiertes Linux funktionieren:
Stellen Sie sicher, dass Sie den richtigen Pfad angeben. Das ist alles :)
quelle
sudo apt-get install postgresql postgresql-dev python-dev
, und das hat bei mir funktioniert.gcc
Stellen Sie außerdem sicher, dass python3-devel installiert ist.quelle
Sie sollten Python-Anforderungen hinzufügen, die in Postgres unter Ubuntu verwendet werden. Lauf:
quelle
Um es zusammenzufassen, ich hatte auch genau das gleiche Problem. Nachdem ich viele Stackoverflow-Beiträge und Online-Blogs gelesen habe, war die endgültige Lösung, die für mich funktioniert hat, folgende:
1) PostgreSQL (Entwicklung oder eine 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 der Installationspfad für PostgreSQL:
Um den Pfad der Datei pg_config explizit festzulegen, habe ich den folgenden Befehl in mein Terminal eingegeben:
Dieser Befehl stellt sicher, dass beim Versuch, psycopg2 per Pip zu installieren, der Pfad zu pg_config diesmal automatisch gefunden wird.
Ich habe auch einen vollständigen Fehler mit trace und seiner Lösung in meinem Blog veröffentlicht, auf den Sie möglicherweise verweisen möchten. Es ist für Mac OS X, aber das PATH-Problem pg_config ist generisch und gilt auch für Linux.
quelle
PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
sudo apt-get install libpq-dev
funktioniert für mich unter Ubuntu 15.4quelle
Unter Linux hat Mint
sudo apt-get install libpq-dev
für mich funktioniert.quelle
Sie können vorkompilierte Binärdateien auf jeder Plattform installieren mit
pip
oderconda
:oder
Bitte beachten Sie, dass auf der psycopg2-binären Pypi-Seite empfohlen wird, in der Produktion aus dem Quellcode zu erstellen :
Verwenden Sie, um das aus Quellen erstellte Paket zu verwenden
python -m pip install psycopg2
. Dieser Prozess erfordert mehrere Abhängigkeiten ( Dokumentation ) (Schwerpunkt Mine):quelle
apt install libpq-dev
UPDATE /etc/yum.repos.d/CentOS-Base.repo, Abschnitte [base] und [updates]
ADD exclude = postgresql *
quelle
Für diejenigen, die OS X ausführen, hat diese Lösung für mich funktioniert:
1) Installieren Sie Postgres.app:
http://www.postgresql.org/download/macosx/
2) Öffnen Sie dann das Terminal und führen Sie diesen Befehl aus. Ersetzen Sie dabei {{version}} durch 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
quelle
sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Versuchen Sie es zu PATH hinzuzufügen:
quelle
-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory
/usr/pgsql-x.x/bin/
das richtig ist?pg_
Dateien befinden. Für postgres.app dieser Pfad auf Mac OS X ist/Applications/Postgres.app/Contents/Versions/9.3/bin
.PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin
Bitte aktualisieren Sie Ihre Version *, wenn eine neue Version veröffentlicht wurde!PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
Alis Lösung hat bei mir funktioniert, aber ich hatte Probleme, den Speicherort des Bin-Ordners zu finden. Ein schneller Weg, um den Pfad unter Mac OS X zu finden, ist das Öffnen von psql (es gibt einen Schnelllink in der oberen Menüleiste). Dadurch wird ein separates Terminalfenster geöffnet und in der zweiten Zeile wird der Pfad Ihrer Postgres-Installation folgendermaßen angezeigt:
Ihre pg_config-Datei befindet sich in diesem bin-Ordner. Legen Sie daher vor der Installation von psycopg2 den Pfad der Datei pg_config fest:
oder für neuere Version:
Dann installieren Sie psycopg2.
quelle
/Applications/Postgres.app/Contents/Versions/9.3/bin
find /usr/local -name 'pg_config'
Sie müssen Ihren Pip aktualisieren, bevor Sie psycopg2 installieren. Verwenden Sie diesen Befehl
quelle
Ich werde dies hier für die nächste unglückliche Seele belassen, die dieses Problem trotz aller bereitgestellten Lösungen nicht umgehen kann. Einfach benutzen
sudo pip3 install psycopg2-binary
quelle
brew install postgresql
behoben.pip install psycopg2-binary
für mich: pip -> python2, pip3 -> python3. Aber solange es funktioniert hat, war es eine von vielen Lösungen!Gerade das Problem in Cent OS 7 gelöst durch:
Stellen Sie sicher, dass Ihre PostgreSql-Version mit der richtigen Version oben übereinstimmt.
quelle
Unter Mac OS X und Wenn Sie die Postgres-App verwenden ( http://postgresapp.com/ ):
In diesem Befehl muss keine Postgres-Version angegeben werden. Es wird immer auf das Neueste hingewiesen.
und TU
PS: Wenn Änderungen nicht berücksichtigt werden, müssen Sie möglicherweise die Terminal- / Eingabeaufforderung neu starten
Quelle
quelle
Die Installation von python-psycopg2 hat es für mich unter Arch Linux gelöst:
quelle
Unter Windows möchten Sie möglicherweise den Windows-Port von Psycopg installieren , der in der Dokumentation von psycopg empfohlen wird .
quelle
Unter MacOS besteht die einfachste Lösung darin, die richtige Binärdatei zu verknüpfen, die sich unter dem Postgres-Paket befindet.
Dies ist ziemlich harmlos, und alle Anwendungen können es bei Bedarf systemweit verwenden.
quelle
sudo yum install postgresql-devel (centos6X)
pip install psycopg2 == 2.5.2
quelle
Der Vollständigkeit halber hier: Wenn Sie PostgreSQL von MacPorts installieren, befindet sich pg_config in
/opt/local/lib/postgresql94/bin/pg_config
.Wenn Sie MacPorts installiert haben, wurde es bereits
/opt/local/bin
zu Ihrem PATH hinzugefügt .Damit ist das Problem behoben:
$ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config
Jetzt
pip install psycopg2
kannpg_config
ohne Probleme ausgeführt werden.quelle
Für diejenigen unter macOS Catalina, die die
zsh
Shell verwenden und auch die postgres-App installiert haben :Öffnen Sie Ihre
~/.zshrc
Datei und fügen Sie die folgende Zeile hinzu:Schließen Sie dann alle Terminals, öffnen Sie sie erneut, und Sie haben Ihr Problem behoben.
Wenn Sie Ihre Terminals nicht schließen möchten, geben Sie einfach das
source ~/.zshrc
Terminal ein, an dem Sie weiterarbeiten möchten .quelle
zsh
Shell funktioniert !Erweitern Sie für Mac-Benutzer Ihre Pfadvariable um PostgreSQL wie folgt
export PATH=$PATH:/Library/PostgreSQL/12/bin
.quelle
So habe ich es geschafft, psycopg2 zu installieren
quelle
Ich bin mir ziemlich sicher, dass Sie das gleiche "Problem" hatten, das ich hatte, deshalb biete ich Ihnen die extrem einfache Lösung an ...
In Ihrem Fall lautet der tatsächliche Pfad, den Sie zu $ PATH (oder als Befehlsparameter) hinzufügen müssen:
nicht
Wenn Sie beispielsweise das Skript python setup.py anschließend ausführen, führen Sie es folgendermaßen aus:
Wahrscheinlich zu spät, aber immer noch die einfachste Lösung.
SPÄTER BEARBEITEN:
Bei weiteren Tests stellte ich fest, dass, wenn Sie den Pfad zu pg_config anfänglich im Formular hinzufügen
(ohne / pg_config nach ..... / bin) und führen Sie den Befehl pip install aus, es wird funktionieren.
Wenn Sie sich dann jedoch 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.
quelle
/usr/pgsql-9.6/bin/pg_config
(oder wie auch immer er auf Ihrem System heißt) zu erstellen/usr/bin/pg_config
- auf diese Weise ist er in dem Pfad verfügbar, den Sie bereits haben.Stellen Sie für CentOS / RedHat sicher, dass
/etc/alternatives/pgsql-pg_config
es sich um einen nicht unterbrochenen Symlink handeltquelle