红帽上的Python和Postgres

时间:2010-10-25 16:15:40

标签: python django linux postgresql

我在linux上安装psycopg2时遇到了麻烦。我尝试导入psycopg2时收到以下错误。

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,Psycopg2 2.2.2,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特有的。

1 个答案:

答案 0 :(得分:2)

Red Hat附带了postgres,可能与自定义安装冲突。 Python使用pg_config来配置psycopg2构建。我将postgres安装到/usr/local/pgsql/,但调用which pg_config返回/usr/bin/pg_config/

在psycopg2构建目录中,有一个文件setup.cfg,可让您明确定义pg_config的路径:

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

设置这个参数并重新编译解决了我的问题。