web-dev-qa-db-fra.com

Comment installer psycopg2 avec "pip" sur Python?

J'utilise virtualenv et je dois installer "psycopg2".

J'ai fait ce qui suit:

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

Et j'ai les messages suivants:

Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2
-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
  Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded
  Running setup.py Egg_info for package from http://pypi.python.org/packages/sou
rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
    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'.

----------------------------------------
Command python setup.py Egg_info failed with error code 1
Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p
ip.log

Ma question, je dois seulement faire ceci pour que le psycopg2 fonctionne?

python setup.py build_ext --pg-config /path/to/pg_config build ...
474
André

J'ai trouvé ce post à la recherche d'une solution Linux à ce problème.

Ceci post par "goshawk" m'a donné la solution: lancez Sudo apt-get install libpq-dev python-dev si vous êtes sur Ubuntu/Debian.

Mise à jour

Etant donné que de plus en plus de personnes ont trouvé cette réponse utile et ont publié leurs propres solutions, voici une liste d'entre elles:

Debian/Ubuntu

Python 2

Sudo apt install libpq-dev python-dev

Python 3

Sudo apt install libpq-dev python3-dev

Additionnel

Si rien de ce qui précède ne résout votre problème, essayez

Sudo apt install build-essential

ou

Sudo apt install postgresql-server-dev-all
716
joar

Sur CentOS, vous avez besoin des packages postgres dev:

Sudo yum install python-devel postgresql-devel

C'était la solution sur CentOS 6 au moins.

115
Banjer

Sur Mac Mavericks avec Postgres.app version 9.3.2.0 RC2, je devais utiliser le code suivant après avoir installé Postgres:

Sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2

82
metasequoia

si vous êtes sur un Mac, vous pouvez utiliser l'homebrew

brew install postgresql

Et toutes les autres options sont ici: http://www.postgresql.org/download/macosx/

Bonne chance

76
nichochar

J'ai récemment configuré psycopg2 sur une machine Windows. L'installation la plus simple consiste à utiliser un exécutable binaire Windows. Vous pouvez le trouver à http://stickpeople.com/projects/python/win-psycopg/ .

Pour installer le binaire natif dans un environnement virtuel, utilisez easy_install:

C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe
62
Praveen Gollakota

C'est ce qui a fonctionné pour moi (sur RHEL, CentOS:

Sudo yum install postgresql postgresql-devel python-devel

Et maintenant, incluez le chemin de votre répertoire binaire postgresql avec votre installation pip:

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

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

UPDATE: Pour python 3, veuillez installer python3-devel au lieu de python-devel

27
radtek

Pour Python 3, vous devez utiliser Sudo apt-get install libpq-dev python3-dev sous Debian.

27
André

Si vous utilisez Mac OS, vous devez installer PostgreSQL à partir du source. Une fois l'installation terminée, vous devez ajouter ce chemin en utilisant:

export PATH=/local/pgsql/bin:$PATH

ou vous pouvez ajouter le chemin comme ceci:

export PATH=.../:usr/local/pgsql/bin

dans votre fichier .profile ou .zshrc.

Cela peut varier en fonction du système d'exploitation.

Vous pouvez suivre le processus d'installation à partir de http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/

21
attomos

Jusqu'à présent, les réponses ressemblent trop à des recettes magiques. L'erreur que vous avez reçue vous indique que pip ne peut pas trouver une partie nécessaire de la bibliothèque PostgreSQL Query. Peut-être est-ce dû au fait que vous l'avez installé à un emplacement non standard pour votre système d'exploitation, raison pour laquelle le message suggère d'utiliser l'option --pg-config.

Mais une raison plus courante est que libpq n'est pas installé du tout. Cela se produit généralement sur des machines sur lesquelles le serveur PostgreSQL n'est PAS installé parce que vous souhaitez uniquement exécuter des applications client, pas le serveur lui-même. Chaque système d'exploitation/distribution est différent, par exemple sous Debian/Ubuntu, vous devez installer libpq-dev. Cela vous permet de compiler et de lier du code à la bibliothèque PostgreSQL Query.

La plupart des réponses suggèrent également d'installer une bibliothèque Python dev. Faites attention. Si vous utilisez uniquement le fichier par défaut Python installé par votre distribution, cela fonctionnera, mais si vous utilisez une version plus récente, des problèmes risquent de se produire. Si vous avez construit Python sur cette machine, vous disposez déjà des bibliothèques de développement nécessaires à la compilation des bibliothèques C/C++ pour l'interface avec Python. Tant que vous utilisez la bonne version de pip, celle installée dans le même dossier bin que le binaire python, vous êtes tous définis. Pas besoin d'installer l'ancienne version.

16
Michael Dillon

Sur Debian/Ubuntu:

Commencez par installer et construire les dépendances du package psycopg2:

# apt-get build-dep python-psycopg2

Ensuite, dans votre environnement virtuel, compilez et installez le module psycopg2:

(env)$ pip install psycopg2
13
Omid Raha

Je l'ai déjà fait auparavant, où vous installez d'abord dans Windows votre installation de base python.

Ensuite, vous manuellement copiez le psycopg2 installé dans l’installation de virtualenv.

Ce n'est pas joli, mais ça marche.

6
monkut

En plus d’installer les paquetages requis, j’ai également dû ajouter manuellement le répertoire bin PostgreSQL à PATH.
$vi ~/.bash_profile
Ajoutez PATH=/usr/pgsql-9.2/bin:$PATH avant export PATH.
$source ~/.bash_profile
$pip install psycopg2

5
xtranophilist

Sous Windows XP, vous obtenez cette erreur si PostGres n'est pas installé ...

3
Sam Joseph

J'ai installé Postgresql92 en utilisant le référentiel RedHat/CentOS sur le site de téléchargement de PG http://www.postgresql.org/download/linux/redhat/

Pour obtenir pg_config, je devais ajouter /usr/pgsql-9.2/bin à PATH.

3
jdborg

Psycopg2 dépend des bibliothèques Postgres. Sur Ubuntu, vous pouvez utiliser:

apt-get install libpq-dev

Ensuite:

pip install psycopg2
2
Manish Gupta

Sur Fedora 24: Pour Python 3.x

Sudo dnf install postgresql-devel python3-devel

Sudo dnf install redhat-rpm-config

Activez votre environnement virtuel:

pip install psycopg2
2
Rajkumar Rajendran

Je me bats avec cela depuis des jours et j'ai enfin trouvé comment obtenir la commande "pip install psycopg2" pour qu'elle s'exécute dans un environnement virtuel sous Windows (exécutant Cygwin).

Je tapais sur "l'exécutable pg_config introuvable." erreur, mais j'avais déjà téléchargé et installé Postgres dans Windows. Il est également installé à Cygwin. exécuter "quel pg_config" dans Cygwin donnait "/ usr/bin/pg_config", et exécuter "pg_config" donnait une sortie saine - mais la version installée avec Cygwin est:

VERSION = PostgreSQL 8.2.11

Cela ne fonctionnera pas avec la version actuelle de psycopg2, qui semble nécessiter au moins la version 9.1. Lorsque j'ai ajouté "c:\Program Files\PostgreSQL\9.2\bin" à mon chemin Windows, le programme d'installation de pip Cygwin a été en mesure de trouver la version correcte de PostgreSQL et j'ai réussi à installer le module à l'aide de pip. (Ceci est probablement préférable à l’utilisation de la version Cygwin de PostgreSQL de toute façon, car la version native fonctionnera beaucoup plus rapidement).

2
Symmetric

Sous OpenSUSE 13.2, cela corrigeait:

Sudo zypper in postgresql-devel 
1
Elliott

Pour les utilisateurs Windows modestes, il leur fallait installer psycopg2 à partir du lien ci-dessous. Il vous suffit de l’installer à l’installation que vous avez choisie Python. Il placera le dossier nommé "psycopg2" dans le dossier site-packages de votre installation python.

Après cela, copiez simplement ce dossier dans le répertoire site-packages de votre virtualenv et vous n'aurez plus aucun problème.

voici le lien vous pouvez trouver l'exécutable pour installer psycopg2

http://www.lfd.uci.edu/~gohlke/pythonlibs/

1
Chris Hawkes

Dans Arch distributions de base:

Sudo pacman -S python-psycopg2
pip2 install psycopg2  # Use pip or pip3 to python3
1
iraj jelodari

Je pourrais l'installer sur une machine Windows et utiliser Anaconda/Spyder avec python 2.7 à l'aide des commandes suivantes:

 !pip install psycopg2

Ensuite, pour établir la connexion à la base de données:

 import psycopg2
 conn = psycopg2.connect(dbname='dbname',Host='Host_name',port='port_number', user='user_name', password='password')
1
Cristian Muñoz

Avant de pouvoir installer psycopg2, vous devez installer le paquet python-dev.

Si vous travaillez sous Linux (et éventuellement sur d’autres systèmes, mais je ne peux pas vous parler d’expérience), vous devrez vous assurer d’être assez précis sur la version de python utilisée lors de l’installation du paquet dev.

Par exemple quand j'ai utilisé la commande:

Sudo apt-get install python3-dev

J'ai toujours rencontré la même erreur en essayant de

pip install psycopg2

Comme j'utilise python 3.7, j'avais besoin d'utiliser la commande

Sudo apt-get install python3.7-dev

Une fois que j'ai fait cela, je n'ai plus eu de problèmes. Évidemment, si vous êtes sur python version 3.5, vous changerez ce 7 en 5.

Sur OSX 10.11.6 (El Capitan)

brew install postgresql
PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2
0
iNoob

Sur Ubuntu, j'avais juste besoin du paquet postgres dev:

Sudo apt-get install postgresql-server-dev-all

* Testé dans une virtualenv

0
marcanuy

Sur OSX avec macports:

Sudo port install postgresql96
export PATH=/opt/local/lib/postgresql96/bin:$PATH
0
Palimpseste

Sur macOS Mojave, assurez-vous de mettre à jour avec Mise à jour de logiciels la dernière mise à jour avec Outils de ligne de commande 10.3 - qui fonctionnait pour moi -, la version précédente des Outils de ligne de commande sur Mojave ne fonctionnait pas pour moi.

0
Radek

si pip ne fonctionne pas, vous pouvez télécharger le fichier .whl à partir d'ici https://pypi.python.org/pypi/psycopg2 l'extraire .. que python setup.py install

0
Umer

J'avais ce problème, la raison principale était avec 2 versions égales installées. Un par postgres.app et un par HomeBrew.

Si vous choisissez de ne garder que l'application:

brew unlink postgresql
pip3 install psycopg2
0
Luís De Marchi