web-dev-qa-db-fra.com

Comment trouver le chemin de pg_config

Terminez le débutant ici, en essayant de configurer Django pour fonctionner avec ProstgreSQL.

J'utilise mac osx 10.6.8. J'ai aussi installé PostgreSQL 9.3

Quand j'exécute pip install psycopg2 dans le terminal, l'erreur suivante apparaît

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'.

J'ai vu un certain nombre de messages sur ce 
comment-installer-psycopg2-with-pip-on-python
pg-config-executable-not-found

mais je ne sais pas comment trouver l'emplacement du dossier bin contenant pg_config. Des conseils pour trouver ce chemin?

55
Ben

Je vous recommande d'essayer d'utiliser Postgres.app. ( http://postgresapp.com ) Ainsi, vous pourrez facilement activer et désactiver Postgres sur votre Mac. Une fois que vous avez terminé, ajoutez le chemin de Postgres à votre fichier .profile en ajoutant ce qui suit:

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

Ce n'est qu'après avoir ajouté Postgres à votre chemin que vous pouvez installer psycopg2 dans un environnement virtuel (à l'aide de pip) ou dans les packages de votre site global.

85
elynch
Sudo find / -name "pg_config" -print

La réponse est /Library/PostgreSQL/9.1/bin/pg_config dans ma configuration (MAC Maverick)

28
user1953296

Postgres.app a été mis à jour récemment. Maintenant, il stocke tous les fichiers binaires dans le dossier "Versions"

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

Où 9.4 - version de PostgreSQL. 

26
Daniil Ryzhkov

Installation de homebrew

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

Et puis installer postgresql

brew install postgresql

m'a donné ce joli morceau de sortie:

checking for pg_config... yes

ahhh yeahhhhh

16
cpres

Une fois que vous avez installé l'application PostgreSQL actuelle sur MacOS X 10.11, le fichier pg_config contient /Library/PostgreSQL/9.5/bin/pg_config.

Puis sur le terminal:

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

Cela mettra le chemin dans le fichier .profile du terminal que vous utilisez.

Dans votre environnement (en supposant que vous utilisez virtualenv), vous installez ensuite psycopg2:

    $ pip install psycopg2

Vous devriez voir si vous l'avez déjà téléchargé:

    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
11
Afrowave

Pour résumer, PostgreSQL installe ses fichiers (y compris ses fichiers binaires ou exécutables) à des emplacements différents, en fonction du numéro de version et de la méthode d'installation. 

Quelques possibilités:

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

Pas étonnant que les gens se perdent!

De plus, si votre variable d’environnement $ PATH inclut un chemin vers le répertoire qui inclut un fichier exécutable (pour le confirmer, utilisez echo $PATH sur la ligne de commande), vous pouvez exécuter which pg_config, which psql, etc. pour trouver où se trouve le fichier. situé .

7
jkdev

J'ai eu exactement la même erreur, mais j'ai installé postgreSQL via brew et j'ai relancé la commande d'origine et cela a parfaitement fonctionné 

brasser installer postgresql

5
romainm

Vous pouvez trouver le répertoire pg_config en utilisant son homonyme:

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

Testé sur Mac et Debian. Le seul problème est que je ne vois pas comment trouver le bindir pour différentes versions de postgres installées sur le même ordinateur. C'est assez facile à deviner quand même! :-)

Note: J'ai mis à jour mon pg_config à 9.5 sur Debian avec:

Sudo apt-get install postgresql-server-dev-9.5
2
Max Murphy

vérifiez /Library/PostgreSQL/9.3/bin et vous devriez trouver pg_config

C'EST À DIRE. /Library/PostgreSQL/<version_num>/

ps: vous pouvez faire ce qui suit si vous le jugez nécessaire pour vos besoins pg -

créer un .profile dans votre répertoire ~

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

Vous pouvez maintenant utiliser les commandes psql ou postgres à partir du terminal et installer psycopg2 ou toute autre dépendance sans problème, sans oublier de toujours ls $PG_HOME/bin lorsque vous avez envie de jeter un coup d'œil à votre pg_dir.

1
codesage

J'ai utilisé :

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

pip install psycopg2
1
Deepika Anand

Voici comment obtenir simplement le chemin de pg_config

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

Avoir le même problème sur mac, vous devez probablement 

brasser installer postgresql

alors vous pouvez courir 

pip installer psycopg2

La bière va résoudre le problème de PATH pour vous

cette solution fonctionne pour moi au moins.

0
zoe_stockholm