2010-10-25 92 views
0

我一直在Linux上安裝psycopg2時遇到問題。當我嘗試導入psycopg2時收到以下錯誤。Python和Postgres紅帽子

Python 2.6.4 (r264:75706, Nov 19 2009, 14:52:22) 
[GCC 3.4.6 20060404 (Red Hat 3.4.6-3)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import psycopg2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.6/site-packages/psycopg2/__init__.py", line 69, in <module> 
    from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID 
ImportError: /usr/local/lib/python2.6/site-packages/psycopg2/_psycopg.so: undefined symbol: PQserverVersion 

我使用PostgreSQL 9.0.1,2.2.2 Psycopg2,Python的2.6.4,和RHEL 4

的問題是相同的,從一年前的這個問題,這是從來沒有回答:http://code.activestate.com/lists/python-list/169772/

有沒有人看到這個錯誤?任何建議將不勝感激。

編輯:Postgresql 9.0.1,Psycopg2 2.2.2和Python 2.6.4的相同組合在我的Mac(雪豹)上正常工作。所以我期望這個問題對Red Hat來說是特別的。

回答

2

紅帽附帶構建的postgres,它可能會與自定義安裝衝突。 Python使用pg_config來配置psycopg2版本。我安裝postgres到/usr/local/pgsql/,但呼叫which pg_config返回/usr/bin/pg_config/

在psycopg2 build目錄,有一個文件setup.cfg,它可以讓你明確地定義到pg_config路徑:

pg_config=/usr/local/pgsql/bin/pg_config 

此設置一個參數並重新編譯解決我的問題。

+0

我沒有pg_config文件。解決方案是:yum -y install postgresql-devel – davey 2012-11-16 08:40:03