web-dev-qa-db-fra.com

pg_config exécutable introuvable

J'ai des difficultés à installer psycopg2. Je reçois le message d'erreur suivant lorsque j'essaie de 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

Mais le problème est que pg_config est en fait dans ma PATH; ça fonctionne sans problème:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

J'ai essayé d'ajouter le chemin pg_config au fichier setup.cfg et de le construire à l'aide des fichiers source que j'ai téléchargés depuis leur site Web ( http://initd.org/psycopg/ ) et le message d'erreur suivant s'affiche!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

Mais c'est effectivement là !!!

Je suis dérouté par ces erreurs. Quelqu'un peut-il aider s'il vous plaît?

En passant, je Sudo toutes les commandes. De plus, je suis sur RHEL 5.5.

489
user1448207

pg_config est dans postgresql-devel (libpq-dev dans Debian/Ubuntu, libpq-devel sur Cygwin/Babun.)

526
TilmanBaumann

Sur Mac OS X, je l'ai résolu à l'aide du homebrew package manager

brew install postgresql
225
azalea

Avez-vous installé python-dev? Si vous l’avez déjà fait, essayez aussi d’installer libpq-dev

Sudo apt-get install libpq-dev python-dev

Extrait de l'article: Comment installer psycopg2 sous virtualenv

155
thegauraw

Également sur OSX. Installé Postgress.app à partir de http://postgresapp.com/ mais avait le même problème.

J'ai trouvé pg_config dans le contenu de cette application et ajouté le répertoire à $PATH.

C'était à /Applications/Postgres.app/Contents/Versions/latest/bin. Donc, cela a fonctionné: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH".

54
Tayler
apt-get build-dep python-psycopg2
36
matiu

Pour résumer, j'ai également été confronté exactement au même problème. Après avoir lu beaucoup de posts sur stackoverflow et de blogs en ligne, la solution finale qui a fonctionné pour moi est la suivante:

1) PostgreSQL (version de développement ou toute version stable) doit être installé avant d’installer psycopg2.

2) Le fichier pg_config (ce fichier réside normalement dans le dossier bin du dossier d’installation de PostgreSQL) PATH doit être explicitement configuré avant d’installer psycopg2. Dans mon cas, l'installation PATH pour PostgreSQL est la suivante:

/opt/local/lib/postgresql91/

aussi, afin de définir explicitement le PATH du fichier pg_config, j’ai entré la commande suivante dans mon terminal:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

Cette commande garantit que, lorsque vous essayez de pips installer psycopg2, il trouvera automatiquement le PATH vers pg_config.

J'ai également posté une erreur complète avec trace et sa solution sur mon blog que vous souhaiterez peut-être consulter. Son pour Mac OS X, mais le problème PATH de pg_config est générique et applicable à Linux également. 

29
Ali Raza Bhayani

Sur Alpine, la bibliothèque contenant pg_config est postgresql-dev . Pour installer, lancez:

apk add postgresql-dev
27
rkoval

Sudo apt-get install libpq-dev fonctionne pour moi sur Ubuntu 15.4

26
novasaint

UPDATE /etc/yum.repos.d/CentOS-Base.repo, sections [base] et [mises à jour]
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
18
Mayank

Pour ceux qui utilisent OS X, cette solution a fonctionné pour moi:

1) Installez Postgres.app:

http://www.postgresql.org/download/macosx/

2) Ensuite, ouvrez le Terminal et lancez cette commande en remplaçant la mention {{version}} par le numéro de version de Postgres:

export PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/{{version}}/bin

par exemple.

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

18
Milo

C'est ce qui a fonctionné pour moi sur CentOS, première installation:

Sudo yum install postgresql postgresql-devel python-devel

Sur Ubuntu, utilisez simplement les packages équivalents d’apt-get.

Sudo apt-get install postgresql postgresql-dev python-dev

Et maintenant, incluez le chemin de votre répertoire binaire postgresql avec votre installation pip, cela devrait fonctionner pour Debain ou Linux basé sur RHEL:

Sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

Assurez-vous d'inclure le chemin correct. C'est tout :)

18
radtek

La solution d’ALi a fonctionné pour moi, mais j’ai eu du mal à trouver l’emplacement du dossier bin. Un moyen rapide de trouver le chemin sous Mac OS X consiste à ouvrir psql (un lien rapide se trouve dans la barre de menus supérieure). Cela ouvrira une fenêtre de terminal séparée et sur la deuxième ligne, le chemin de votre installation Postgres ressemblera à ceci:

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

Votre fichier pg_config est dans ce dossier bin. Par conséquent, avant d’installer psycopg2, définissez le chemin du fichier pg_config:

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

ou pour une version plus récente:

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

Ensuite, installez psycopg2. 

16
user2498172

Essayez de l'ajouter à PATH:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2
15
Marboni

Vous devez mettre à jour votre pip avant d'installer psycopg2. Utilisez cette commande

pip install --upgrade pip
10
Aswin

Vient de résoudre le problème dans Cent OS 7 en:

export PATH=$PATH:/usr/pgsql-9.5/bin

assurez-vous que votre version de PostgreSql correspond à la bonne version ci-dessus.

9
Morfat Mosoti

Sur Linux Mint, Sudo apt-get install libpq-dev a fonctionné pour moi.

8
mthecreator

Sous Windows, vous pouvez installer le port Windows de Psycopg , recommandé dans la documentation de psycopg .

7
azalea

Vous avez installé postgresql-devel (centos6X)

pip installer psycopg2 == 2.5.2

5
user2387567

Ici, pour la complétude de OS X: si vous installez PostgreSQL depuis MacPorts, pg_config sera dans /opt/local/lib/postgresql94/bin/pg_config 

Lorsque vous avez installé MacPorts, il a déjà ajouté /opt/local/bin à votre PATH. 

Donc, cela résoudra le problème: $ Sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

Maintenant, pip install psycopg2 pourra exécuter pg_config sans problème.

5
Gabi

Cela fonctionne pour moi:

Sudo apt-get install libpq-dev python-dev
5
Kishore Bhosale

Sous Mac OS X et si vous utilisez Postgres App ( http://postgresapp.com/ ):

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

Pas besoin de spécifier la version de Postgres dans cette commande. Il sera toujours pointé au plus tard.

et fait 

pip install psycopg2

P.S: Si les modifications ne reflètent pas, vous devrez peut-être redémarrer le terminal/Invite de commande

La source

4
Dinesh Sunny

Voici comment j'ai réussi à installer psycopg2

$ 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
2
TomNg

Sur Gentoo, vous devez exécuter ce qui suit

# Install postgresql client libraries
Sudo emerge postgresql-base
1
czerasz

Sur MacOS, la volonté la plus simple est de faire le lien symbolique avec le bon binaire, qui se trouve dans le paquet Postgres.

Sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

Ceci est relativement inoffensif et toutes les applications pourront l’utiliser à l’échelle du système, si nécessaire.

1
Subin Sebastian

pour CentOS/RedHat, assurez-vous que /etc/alternatives/pgsql-pg_config est un lien symbolique non rompu

1
Hedde van der Heide

Pour les personnes confrontées à ce problème qui travaillaient sur une application Django et se déployaient sur AWS, la méthode décrite dans ce tutoriel fonctionnait pour moi: https://realpython.com/deploying-a-Django-app -et-postgresql-a-aws-elastique-haricot /

Voici l'explication de l'auteur pour quand vous obtenez l'erreur suivante:

Error: pg_config executable not found.

Le problème est que nous avons essayé d'installer psycopy2 (les liaisons Postgres Python), mais nous avons également besoin d'installer les pilotes du client Postgres. Comme ils ne sont pas installés par défaut, nous devons d'abord les installer.

eb lira les fichiers .config personnalisés à partir d'un dossier appelé ".ebextensions" situé au niveau racine de votre projet. Ces fichiers .config vous permettent d’installer des packages, d’exécuter des commandes arbitraires et/ou de définir des variables d’environnement. Les fichiers du répertoire ".ebextensions" doivent être conformes à la syntaxe JSON ou YAML et sont exécutés dans l'ordre alphabétique.

La première chose à faire est d’installer certains paquets pour que notre commande pip install se termine avec succès. Pour ce faire, créons un fichier nommé .ebextensions/01_packages.config:

packages:
  yum:
    git: []
    postgresql93-devel: []
    libjpeg-turbo-devel: []

Les instances EC2 exécutent Amazon Linux, une variante de Redhat, afin que nous puissions utiliser yum pour installer les packages dont nous avons besoin. Pour l'instant, nous allons simplement installer trois packages: git, le client Postgres et libjpeg pour Pillow.

1
kashgo

Les fenêtres:

  1. Installez PostgreSQL. pg_config se trouve dans le dossier 'bin' de PostgreSQL.
  2. Ajoutez le chemin du dossier 'bin' de PostgreSQL à la variable d'environnement Windows PATH:

CHEMIN: C:\Program Files\PostgreSQL\9.5\bin;

1
Pavel Molchanov

L’installation de python-psycopg2 me l’a résolu sur Arch Linux:

pacman -S python-psycopg2
1
Ronan Boiteau

Je suis presque sûr que vous avez rencontré le même "problème" que moi, donc je vais vous proposer la solution extrêmement simple ...

Dans votre cas, le chemin réel que vous devez ajouter à $ PATH (ou en tant que paramètre de commande) est:

/usr/pgsql-9.1/bin/pg_config

ne pas

/usr/pgsql-9.1/bin

Par exemple. si vous exécutez le script setup.py de python par la suite, exécutez-le comme suit:

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

Probablement trop tard, mais reste la solution la plus simple.

PLUS TARD:

Lors de tests supplémentaires, j’ai découvert que si vous ajoutez initialement le chemin de pg_config sous la forme 

/usr/pgsql-9.1/bin

(sans/pg_config après ...../bin) et exécutez la commande pip install cela fonctionnera.

Cependant, si vous décidez ensuite de suivre l’indication d’exécuter python setup.py, vous devrez spécifier le chemin avec/pg_config après ...../bin, c.-à-d.

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build
1
BogdanSorlea

Sur MAC Mojave, si vous l’avez installé à l’aide de brew, faites alors brew info <your postgres>

Il vous montrera toutes les variables d'environnement que vous devriez définir, il suffit de copier-coller ces commandes, de redémarrer votre Shell et c'est tout!

0
Ravindra

J'ai trouvé que cette page fournissait les meilleures instructions pour installer PostgreSQL sur mon mac et que la commande pip install fonctionnait parfaitement par la suite:

https://www.codefellows.org/blog/three-battle-tested-tested-ways-to-install-postgresql

0
traggatmot