web-dev-qa-db-fra.com

erreur: la commande 'gcc' a échoué avec l'état de sortie lors de l'installation de psycopg2

j'ai besoin d'installer psycopg2 pour openerp processus d'installation, mais j'ai toujours trouvé cette erreur. j'ai déjà utilisé pip et easy_install, mon gcc est la dernière version. J'ai vraiment besoin de votre aide pour résoudre mon problème ...

c'est mon erreur complète avec easy_install ..

[root@server01 ~]# easy_install psycopg2    
Searching for psycopg2    
Reading http://pypi.python.org/simple/psycopg2/    
Reading http://initd.org/psycopg/    
Reading http://initd.org/projects/psycopg2    
Best match: psycopg2 2.4.5    
Downloading http://initd.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz    
Processing psycopg2-2.4.5.tar.gz    
Running psycopg2-2.4.5/setup.py -q bdist_Egg --dist-dir /tmp/easy_install-anWVvJ/psycopg2-2.4.5/Egg-dist-tmp-cZbdtn

no previously-included directories found matching 'doc/src/_build' In file included from psycopg/psycopgmodule.c:27:
./psycopg/psycopg.h:31:22: error: libpq-fe.h: No such file or directory In file included from psycopg/psycopgmodule.c:29:

...

error: Setup script exited with error: command 'gcc' failed with exit status 1
23
ws_123

Vous devrez installer le package de développement pour PostgreSQL, qui, par exemple, sous Ubuntu est un Sudo apt-get install libpq-dev... et pour CentOS c'est yum install postgresql-devel

37
Jon Clements

Pour le cas de CentOS, j'ai eu ce même problème, que j'ai résolu d'installer ces packages:

Sudo yum install postgresql-libs
Sudo yum install postgresql-devel
Sudo yum install python-devel

alors seulement, j'ai pu réussir:

Sudo easy_install psycopg2
32
Nicolás Ozimica

Mai Votre système manque les en-têtes Python. Pour résoudre ce problème, exécutez:

Sudo apt-get install python-dev

ou

Sudo apt-get install python3-dev
14
Heroic

Sur un nouveau Ubuntu 14.04.2 LTS sur une instance EC2, j'ai pu installer psycopg2 après avoir installé les packages suivants:

Sudo apt-get install gcc
Sudo apt-get install postgres-xc-server-dev
Sudo apt-get install libpq-dev
Sudo apt-get install postgresql-client-common
Sudo apt-get install postgresql-common

Et sur une nouvelle instance AMI linux (CentOS):

Sudo yum install postgresql-devel
Sudo yum install gcc*

J'espère que ça aide,

Erez

8
ErezK

j'ai eu ce problème mais j'ai été résolu en exécutant:

pip install -Iv psycopg2==2.7.7

Il y a un problème lors de l'installation de la dernière version + python3.7

5
Joe Gasewicz

J'ai essayé d'installer pgsql sur une simple instance d'Amazon Linux EC2 et j'ai reçu cette erreur. Selon la réponse de Nicolás, j'ai installé sa liste de packages suggérée, mais j'ai continué à obtenir l'erreur. En regardant de plus près l'erreur, j'ai remarqué que la commande gcc incluait des fichiers pgsql93:

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.6.1 (dt dec pq3 ext lo64)" -DPG_VERSION_HEX=0x09030A -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/pgsql93 -I/usr/include/pgsql93/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement

Recherche dans /usr/include/ Je vois pgsql92/ mais non pgsql93/. J'ai donc regardé quels paquets yum liés à pgsql ont été installés et j'ai remarqué ceux-ci:

postgresql92.x86_64 postgresql92-devel.x86_64 postgresql92-libs.x86_64 postgresql93.x86_64 postgresql93-libs.x86_64

Il me semblait qu'il devrait y avoir un postgresql93-devel, j'ai donc essayé:

Sudo yum install postgresql93-devel

Et cela a résolu le problème pour moi! Donc je suppose que le thème est: Regardez l'appel gcc, et voyez dans quel dir il tire. Suivez les miettes à partir de là.

5
Aaron Torgerson

Pour Ubuntu 14.04, à partir de l'image Docker python:3.4.3-slim cette combinaison a fonctionné pour moi:

Sudo apt-get update
Sudo apt-get install -y build-essential
Sudo apt-get install -y python3.4-dev
Sudo apt-get install -y libpq-dev

pip3 install psycopg2

Remarque build-essential paquet. C'était crucial dans mon cas.

3
neciu

Dans centos 7. j'utiliserais Sudo yum install postgresql96-devel.x86_64 pour résoudre mon problème.

3
ji-ruh

L'invocation de gcc a échoué, gcc n'a pas pu compiler la source. La cause est probablement

./psycopg/psycopg.h:31:22: error: libpq-fe.h: No such file or directory In file included from psycopg/psycopgmodule.c:29:

que l'en-tête libpq-fe.h n'est nulle part dans le chemin de recherche si vous l'avez.

2
Daniel Fischer

psycopg2 est également disponible sur PyPI sous la forme de packages de roues pour la plate-forme la plus courante (Linux, OSX, Windows): cela devrait vous permettre d'installer une version binaire du module, ne nécessitant pas les conditions de build ou d'exécution ci-dessus.

Vous pouvez utiliser cette commande: pip install psycopg2-binary

Remarque Le package psycopg2-binary est destiné aux débutants pour commencer à jouer avec Python et PostgreSQL sans avoir à répondre aux exigences de construction. Si vous êtes le responsable d'un package de publication en fonction de psycopg2, vous ne devriez pas '' t utiliser 'psycopg2-binary' comme dépendance de module. Pour une utilisation en production, il est conseillé d'utiliser la distribution source.

1
Dksingh

Pour moi, le paquet manquant était

libpqxx-devel.x86_64
1
Jeff

Cela a fonctionné pour moi sur Ubuntu Server 14.10 64 bits:

Sudo apt-get install libpqxx-dev
1
schnbrg