628 votes

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 ça pour que le psycopg2 fonctionne ?

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

3 votes

Est-ce que cela a fonctionné lorsque vous avez essayé python setup.py build_ext --pg-config /path/to/pg_config build ... ? ??

2 votes

Pour python 3.4 ou python 3.5, vous devez installer le paquet dev de la version correspondante comme suit sudo apt install libpq-dev python3.4-dev o sudo apt install libpq-dev python3.5-dev

0 votes

psycopg2 supprimez ceci et ajoutez psycopg2-binary au fichier de dépendances et réessayez.

1039voto

joar Points 4110

Note : Depuis un certain temps, il y a des roues binaires pour Windows dans PyPI, donc cela ne devrait plus être un problème pour les utilisateurs de Windows. Vous trouverez ci-dessous des solutions pour les utilisateurs de Linux et de Mac, puisque beaucoup d'entre eux trouvent cet article en faisant des recherches sur le web.


Option 1

Installer le psycopg2-binary PyPI à la place, il a des roues Python pour Linux et Mac OS.

pip install psycopg2-binary

Option 2

Installez les prérequis pour la construction de l'application psycopg2 paquet à partir de la source :

Debian/Ubuntu

Python 3

sudo apt install libpq-dev python3-dev

Vous devrez peut-être installer python3.8-dev ou similaire pour, par exemple, Python 3.8.

Python 2

sudo apt install libpq-dev python-dev

Si cela ne suffit pas, essayez

sudo apt install build-essential

ou

sudo apt install postgresql-server-dev-all

également avant de réinstaller psycopg2.

CentOS 6

Voir Réponse de Banjer

7 votes

11.04 : des erreurs différentes, la même solution. Culte aux versions dev !

5 votes

@I159 - Le *-dev les paquets contiennent les fichiers nécessaires à la compilation d'une application de la source qui utilise les fonctions fournies par la bibliothèque (comme psycopg2 utilise le libpq y python les bibliothèques, entre autres).

2 votes

Fonctionne également sur Ubuntu 11.10. Merci !

123voto

Banjer Points 2806

Sous CentOS, vous avez besoin des paquets postgres dev :

sudo yum install python-devel postgresql-devel

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

1 votes

Ce n'est pas seulement CentOS, je pense. psycopg a des dépendances natives, donc pour construire à partir des sources (ce que fait pip), les bibliothèques de développement PostgreSQL doivent être présentes. (Les en-têtes C, peut-être ? Je ne m'y connais pas beaucoup en compilation de code natif).

4 votes

Je reconnais que cela résout le problème sur CentOS 6. Je voudrais ajouter que j'ai dû ajouter /usr/pgsql-9.3/bin à $PATH. Voici un article qui donne un exemple de la façon de procéder. serverfault.com/questions/102932/

0 votes

Pour CentOS 7 et Python 3.4, j'ai dû installer "python34-devel". Ma réponse à une question connexe : stackoverflow.com/a/42370489/26219

91voto

nichochar Points 189

Si vous êtes sur un mac vous pouvez utiliser homebrew

brew install postgresql

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

Bonne chance

2 votes

La réponse de nichochar et celle de attomos (installer postgresql et modifier le chemin) ont résolu le problème pour moi. la manière la plus simple de modifier le chemin est d'exécuter "sudo nano /etc/path" depuis votre terminal.

3 votes

Merci pour cela. J'étais sur le point de devenir fou avant de trouver ça !

1 votes

Cela a fonctionné pour moi aussi, pas besoin de modifier mon chemin (et en général, je ne recommanderais pas sudo ici - vous devriez pouvoir le faire en espace utilisateur).

90voto

metasequoia Points 1604

Sur Mac Mavericks avec Postgres.app version 9.3.2.0 RC2, j'ai dû utiliser le code suivant après avoir installé Postgres :

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

0 votes

Sudo PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin pip install psycopg2 [à partir du 5 avril 2014]

0 votes

Confirmé pour Postgres.app 9.3.5 également :)

0 votes

Avec Postgres.app 9.3.5 Mac OS X Version 10.9.4, j'ai dû ajouter export PATH=${PATH}:/Applications/Postgres.app/Contents/Versions/9.‌​3/bin/ à la ~/.bash_profile et ouvrir une nouvelle fenêtre avant d'installer psycopg2. Le chemin spécifié par @user798719 n'existe pas pour moi et je viens d'installer Postgres.app sur mon ordinateur aujourd'hui [11 septembre 2014].

63voto

Praveen Gollakota Points 8440

J'ai récemment configuré psycopg2 sur une machine Windows. L'installation la plus simple est d'utiliser un binaire exécutable 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

3 votes

Merci pour la réponse. Mais j'ai besoin d'installer dans un environnement virtuel. Cordialement,

4 votes

Ce site astuce (avec l'aimable autorisation de Ned Batchelder) m'a aidé par le passé à installer des binaires dans un environnement virtuel.

14 votes

N'y a-t-il vraiment aucun moyen de faire fonctionner "pip install psycopg2" sous Windows ? Même si un patch pour psycopg2 est nécessaire, cela en vaudrait la peine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X