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
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
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
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
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
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
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à.
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.
Dans centos 7. j'utiliserais Sudo yum install postgresql96-devel.x86_64
pour résoudre mon problème.
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.
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.
Pour moi, le paquet manquant était
libpqxx-devel.x86_64
Cela a fonctionné pour moi sur Ubuntu Server 14.10 64 bits:
Sudo apt-get install libpqxx-dev