未定义的符号:PyUnicodeUCS2_Decode,同时尝试安装psycopg2

时间:2010-04-06 10:47:29

标签: python psycopg2

尝试在ubuntu 9.10 64位上安装psycopg2时出错。

错误是:

>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "psycopg2/__init__.py", line 69, in <module>
    from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: psycopg2/_psycopg.so: undefined symbol: PyUnicodeUCS2_Decode

我尝试从http://initd.org/pub/software/psycopg/下载并安装它。我也尝试过使用easy_install。

安装过程中没有错误。

我的python(2.6.2)已经使用UCS4进行编译,这很奇怪,所以安装应该没有问题。

任何帮助都将不胜感激。

干杯

4 个答案:

答案 0 :(得分:9)

修好了。

我不得不用--enable-unicode = ucs4重新编译python。

仍然不清楚为什么ubuntu上的默认版本使用ucs4。

答案 1 :(得分:4)

就像你说的那样,你的Python已经构建了UCS4。但是您尝试安装的psycopg2是针对Python构建的 UCS2 而构建的。在UCS4中找到一个或构建一个。

答案 2 :(得分:0)

bx.intervals导入bx-python时出现相同的错误:

undefined symbol: PyUnicodeUCS2_Decode

但是,我正在使用的python版本已经使用ucs4进行了编译。显然,bx-python是针对使用ucs2编译的python版本构建的。因此,我不得不按照OP所述的相反方式重新编译python:./configure --enable-unicode=ucs2

答案 3 :(得分:-1)

在我的情况下,使用bash shell没有问题,而csh遇到了此问题。实现了安装了多个版本的python。 / usr / local / bin中的一个默认设置可以工作,而/ bin中的一个默认设置可以解决这个问题。在您认为您需要与管理员帮助重新编译之前,请先检查一下是否安装了任何替代版本的python。