So finden Sie den Pfad pg_config

74

Schließen Sie den Neuling hier ab und versuchen Sie, Django für die Arbeit mit PostgreSQL einzurichten.

Ich benutze Mac OSX 10.6.8. Ich habe auch PostgreSQL 9.3 installiert

Wenn ich pip install psycopg2im Terminal laufe, erhalte ich den folgenden Fehler

Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py (path:/private/var/folders/A9/A99cs6x0FNusPejCVkYNTE+++TI/-Tmp-/pip_build_bengorman/psycopg2/setup.py) egg_info for package 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'.
    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: 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 eine Reihe von Beiträgen zu dieser
Anleitung zur Installation von psycopg2-with-pip-on-Python gesehen.
Pg-config-ausführbare-Datei-nicht gefunden

Ich habe jedoch keine Ahnung, wie ich den Speicherort des Bin-Ordners mit pg_config finden kann. Irgendwelche Tipps, um diesen Weg zu finden?

Ben
quelle
5
Versuchen Sie es sudo find / -name pg_configim Terminal.
Twil
3
Erklären Sie als Mac OS X-Benutzer immer, wie Sie PostgreSQL installiert haben . Es gibt zu viele verschiedene PostgreSQL-Pakete für OS X, alle mit ihren eigenen bizarren und frustrierenden Macken. Homebrew? MacPorts? Postgres.app? Von der Quelle? EDB? ...
Craig Ringer

Antworten:

106

Ich empfehle Ihnen, Postgres.app zu verwenden. ( http://postgresapp.com ) Auf diese Weise können Sie Postgres auf Ihrem Mac einfach ein- und ausschalten. Fügen Sie anschließend den Pfad zu Postgres zu Ihrer .profileDatei hinzu, indem Sie Folgendes anhängen:

PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

Erst nachdem Sie Postgres zu Ihrem Pfad hinzugefügt haben, können Sie versuchen, die Installation psycopg2entweder in einer virtuellen Umgebung (mithilfe von pip) oder in Ihren globalen Site-Paketen durchzuführen.

elynch
quelle
14
Das ist jetzt in /Applications/Postgres.app/Contents/Versions/9.3/bin.
Chris vCB
1
In 9.4 ist es hier: /Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
David Watson
Bedeutet dies, dass ich bei jedem Update daran denken muss, die Version zu ändern? Jetzt ist 9.5
mp3por
Wenn Sie die App wie oben installiert haben, befindet sich die Datei jetzt /Library/PostgreSQL/9.5/bin/pg_configunter MacOS X 10.11.
Afrowave
7
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"sollte für jede neueste Version funktionieren.
Aidas Bendoraitis
38
sudo find / -name "pg_config" -print

Die Antwort lautet /Library/PostgreSQL/9.1/bin/pg_config in meiner Konfiguration (MAC Maverick)

user1953296
quelle
28

Postgres.app wurde kürzlich aktualisiert. Jetzt werden alle Binärdateien im Ordner "Versionen" gespeichert

PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"

Wobei 9.4 - Version von PostgreSQL.

Daniil Ryzhkov
quelle
3
Keine Ahnung, warum dies abgelehnt wurde, aber das ist richtig - zumindest für 9.3 und höher ...
Richard
24

Homebrew installieren

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Und dann postgresql installieren

brew install postgresql

gab mir diese schöne Ausgabe:

checking for pg_config... yes

ahhh yeahhhhh

cpres
quelle
15

Sobald Sie die aktuelle PostgreSQL-App unter MacOS X 10.11 installiert haben, befindet sich hier die Datei pg_config /Library/PostgreSQL/9.5/bin/pg_config.

Dann auf dem Terminal:

    $ export PG_HOME=/Library/PostgreSQL/9.5
    $ export PATH=$PATH:$PG_HOME/bin

Dadurch wird der Pfad in das .profile des von Ihnen verwendeten Terminals eingefügt.

In Ihrer Umgebung (vorausgesetzt, Sie verwenden virtualenv) installieren Sie dann psycopg2:

    $ pip install psycopg2

Sie sollten sehen, ob Sie es zuvor heruntergeladen haben:

    Collecting psycopg2
      Using cached psycopg2-2.6.1.tar.gz
    Installing collected packages: psycopg2
      Running setup.py install for psycopg2 ... done
    Successfully installed psycopg2-2.6.1
Afrowave
quelle
1
Tolle. In meinem Fall war es nicht unter Ordnerbibliothek. Es war auf /Applications/Postgres.app / .... Vielen Dank!
Salva
8

Zusammenfassend lässt sich sagen, dass PostgreSQL seine Dateien (einschließlich seiner binären oder ausführbaren Dateien) je nach Versionsnummer und Installationsmethode an verschiedenen Speicherorten installiert.

Einige der Möglichkeiten:

/usr/local/bin/
/Library/PostgreSQL/9.2/bin/
/Applications/Postgres93.app/Contents/MacOS/bin/
/Applications/Postgres.app/Contents/Versions/9.3/bin/

Kein Wunder, dass die Leute verwirrt sind!

Wenn Ihre Umgebungsvariable $ PATH einen Pfad zu dem Verzeichnis enthält, das eine ausführbare Datei enthält (um dies zu bestätigen, verwenden Sie sie echo $PATHin der Befehlszeile), können Sie usw. ausführen which pg_config, which psqlum herauszufinden, wo sich die Datei befindet .

jkdev
quelle
6

Ich hatte genau den gleichen Fehler, aber ich habe postgreSQL durch Brew installiert und den ursprünglichen Befehl erneut ausgeführt, und es hat perfekt funktioniert:

brauen installieren postgresql

Romainm
quelle
3

Sie finden das pg_configVerzeichnis unter seinem Namensvetter:

$ pg_config --bindir
/usr/lib/postgresql/9.1/bin
$ 

Getestet auf Mac und Debian. Die einzige Falte ist, dass ich nicht sehen kann, wie ich das Bindir für verschiedene Versionen von Postgres finde, die auf demselben Computer installiert sind. Es ist jedoch ziemlich leicht zu erraten! :-)

Hinweis: Ich habe meine pg_config unter Debian auf 9.5 aktualisiert mit:

sudo apt-get install postgresql-server-dev-9.5
Max Murphy
quelle
Sie haben das Problem nicht verstanden. Das OP erhält den Fehler, da pg_configes nicht zu den in aufgeführten Verzeichnissen gehört PATH. Angesichts dieses Sachverhalts pg_configfunktioniert das Ausführen der Shell, wie Sie sie zeigen, aus genau demselben Grund nicht .
Louis
Richtig - Entschuldigung. Ich fand das bei der Suche nach Wegen und überflog ein bisschen zu viel!
Max Murphy
Die einzige Antwort hier, die mir geholfen hat, hatte 0 Stimmen ... Ich kann nur eine geben. Falls es jemandem hilft, installiert Brew (Version 9.5.2) am/usr/local/Cellar/postgresql/9.5.2/bin
21.
3

Haben Sie das gleiche Problem auf dem Mac, müssen Sie wahrscheinlich

brauen installieren postgresql

dann kannst du rennen

pip install psycopg2

Das Gebräu wird das PATH-Problem für Sie beheben

Diese Lösung funktioniert zumindest für mich.

zoe_stockholm
quelle
Funktioniert für mich in MacOS Catalina Version 10.15.5.
Mohit Pandey
Das gleiche hier funktionierte für mich in MacOs Mojave, nachdem ich alle oben genannten Optionen
ausprobiert hatte
1

Überprüfen Sie /Library/PostgreSQL/9.3/bin und Sie sollten pg_config finden

IE /Library/PostgreSQL/<version_num>/

ps: du kannst folgendes tun, wenn du es für notwendig hältst für deine pg bedürfnisse -

Erstellen Sie ein .profile in Ihrem ~ Verzeichnis

export PG_HOME=/Library/PostgreSQL/9.3
export PATH=$PATH:$PG_HOME/bin

Sie können jetzt psqloder postgresBefehle vom Terminal aus verwenden und psycopg2 oder eine andere Abhängigkeit ohne Probleme installieren. Außerdem können Sie dies immer ls $PG_HOME/bintun, wenn Sie Lust haben, auf Ihr pg_dir zu spähen.

Codesage
quelle
1

Ich benutzte :

export PATH=$PATH:/Library/PostgreSQL/9.6/bin

pip install psycopg2
Deepika Anand
quelle
1

Funktioniert für mich, indem ich zuerst die folgenden Pip-Pakete installiere: libpq-devundpostgresql-common

Koleen BP
quelle
1
..Frage ist über das Finden eines Ordners ... Sie fügen Freude über die Installation von Paketen hinzu ...
ZF007
0

So erhalten Sie einfach den Weg von pg_config

$ which pg_config                 // prints the directory location 
/usr/bin/pg_config
bereket gebredingle
quelle