2012-10-16 38 views
16

tôi cần cài đặt psycopg2 cho quy trình cài đặt openerp nhưng tôi luôn tìm thấy lỗi đó. Tôi đã sử dụng pipeasy_install, gcc của tôi là phiên bản mới nhất. Thực sự cần sự giúp đỡ của bạn để giải quyết vấn đề của tôi ...lỗi: lệnh 'gcc' không thành công với trạng thái thoát khi cài đặt psycopg2

đây là lỗi hoàn chỉnh của tôi với easy_install ..

[[email protected] ~]# 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 

Trả lời

2

Các invocation của gcc thất bại, gcc không thể dịch chương trình nguồn. Có thể nguyên nhân là

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

rằng tiêu đề libpq-fe.h không có trong đường dẫn tìm kiếm nếu bạn có nó.

+0

tôi nên làm gì với libpq-fe.h? bạn có thể giải thích thêm cho tôi không? –

+0

Kiểm tra xem bạn có hoàn toàn không. Nếu không, cài đặt gói cung cấp nó, 'libpq-devel' hoặc' libpq-dev' hoặc một cái gì đó tương tự, tùy thuộc vào phân phối. –

31

Bạn sẽ cần phải cài đặt các gói phát triển PostgreSQL, mà ví dụ theo Ubuntu là một sudo apt-get install libpq-dev ... và cho CentOS nó yum install postgresql-devel

+7

tôi đã làm nhưng vẫn với cùng một lỗi .. –

14

Có thể hệ thống của bạn thiếu các tiêu đề Python. Để sửa lỗi này, hãy chạy:

sudo apt-get install python-dev 

hoặc

sudo apt-get install python3-dev 
+0

điều này làm việc cho tôi – tomwolber

+1

Tôi đã tìm kiếm 30 phút. Đã cài đặt python-psycopg2, postgresql-server-dev-9.1, postgresql-plpython-9.1 và libpq-dev. Vẫn còn 'gcc' không thành công với trạng thái thoát 1. Bây giờ với python-dev nó hoạt động tốt ;-) – surfi

+2

trừ khi bạn đang sử dụng CentOS – hafichuk

26

Đối với trường hợp của CentOS, tôi có vấn đề này rất giống nhau, mà tôi giải quyết cài đặt các gói:

sudo yum install postgresql-libs 
sudo yum install postgresql-devel 
sudo yum install python-devel 

chỉ sau đó , Tôi đã có thể thực hiện thành công:

sudo easy_install psycopg2 
+6

Cảm ơn bạn đã không giả định rằng mọi người sử dụng Debian. +1 – hafichuk

1

Đối với tôi, gói mất tích là

libpqxx-devel.x86_64 
1

này làm việc cho tôi trên Ubuntu Server 14.10 64-bit:

sudo apt-get install libpqxx-dev 
2

Đối Ubuntu 14.04, từ Docker ảnh python:3.4.3-slim sự kết hợp này làm việc cho tôi:

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 

Lưu ý gói build-essential. Nó rất quan trọng trong trường hợp của tôi.

+1

Người đàn ông tôi đã thử mọi thứ trước khi điều này cuối cùng đã sửa nó. Cũng chạy một hình ảnh docker, do đó, khá nhiều chỉ cần sao chép mã của bạn vào dockerfile của tôi và nó làm việc như một say mê – Simon

7

Trên ubuntu tươi 14.04.2 LTS trên một thể hiện EC2, tôi đã có thể cài đặt psycopg2 sau instaling các gói sau:

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 

Và trên linux AMI tươi (CentOS) Ví dụ:

sudo yum install postgresql-devel 
sudo yum install gcc* 

Hy vọng nó giúp,

Erez

5

tôi đã cố gắng để inst tất cả pgsql trên một cá thể Amazon Linux EC2 đơn giản và đã gặp phải lỗi này. Per Nicolás trả lời, tôi đã cài đặt danh sách các gói đề xuất của anh ấy, nhưng tôi vẫn gặp lỗi.Nghiên cứu kỹ hơn lỗi, tôi nhận thấy rằng các lệnh gcc đã bao gồm các file 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

tìm trong /usr/include/ tôi thấy pgsql92/ nhưng không pgsql93/. Vì vậy, tôi đã xem xét những gì gói yum pgsql liên quan đã được cài đặt và tôi nhận thấy những:

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

Dường như với tôi như có nên được một postgresql93-devel, vì vậy tôi cố gắng:

sudo yum install postgresql93-devel

Và điều đó đã khắc phục được sự cố cho tôi! Vì vậy, tôi đoán chủ đề là: Nhìn vào cuộc gọi gcc, và xem những gì dir nó kéo trong. Thực hiện theo các mẩu vụn từ đó.

3

Ở centos 7. tôi muốn sử dụng sudo yum install postgresql96-devel.x86_64 để giải quyết vấn đề của mình.

Các vấn đề liên quan