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?


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.


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)


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.


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


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

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 .


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


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

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.


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.


1

Ich benutzte :

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

pip install psycopg2

1

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.