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.
pg_config
est dans postgresql-devel
(libpq-dev
dans Debian/Ubuntu, libpq-devel
sur Cygwin/Babun.)
Sur Mac OS X, je l'ai résolu à l'aide du homebrew package manager
brew install postgresql
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
É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"
.
apt-get build-dep python-psycopg2
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.
Sur Alpine, la bibliothèque contenant pg_config
est postgresql-dev
. Pour installer, lancez:
apk add postgresql-dev
Sudo apt-get install libpq-dev
fonctionne pour moi sur Ubuntu 15.4
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
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
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 :)
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.
Essayez de l'ajouter à PATH:
PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2
Vous devez mettre à jour votre pip avant d'installer psycopg2. Utilisez cette commande
pip install --upgrade pip
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.
Sur Linux Mint, Sudo apt-get install libpq-dev
a fonctionné pour moi.
Sous Windows, vous pouvez installer le port Windows de Psycopg , recommandé dans la documentation de psycopg .
Vous avez installé postgresql-devel (centos6X)
pip installer psycopg2 == 2.5.2
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.
Cela fonctionne pour moi:
Sudo apt-get install libpq-dev python-dev
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
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
Sur Gentoo, vous devez exécuter ce qui suit
# Install postgresql client libraries
Sudo emerge postgresql-base
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.
pour CentOS/RedHat, assurez-vous que /etc/alternatives/pgsql-pg_config
est un lien symbolique non rompu
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.
Les fenêtres:
CHEMIN: C:\Program Files\PostgreSQL\9.5\bin;
L’installation de python-psycopg2
me l’a résolu sur Arch Linux:
pacman -S python-psycopg2
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
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!
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