安装psycopg2时出现未定义符号: PyUnicodeUCS2_Decode
我在尝试在64位的Ubuntu 9.10上安装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 个回答
1
我在导入 bx.intervals
这个模块时,也遇到了同样的错误,那个模块是来自 bx-python
的:
undefined symbol: PyUnicodeUCS2_Decode
不过,我当时使用的 Python 版本已经是用 ucs4
编译过的。显然,bx-python
是基于一个用 ucs2
编译的 Python 版本来构建的。所以我不得不按照 OP 提到的相反方式重新编译 Python:./configure --enable-unicode=ucs2
。
4
就像你说的,你的Python是用UCS4构建的。但是你想安装的psycopg2是针对用UCS2构建的Python制作的。你需要找一个或者自己构建一个UCS4版本的。
12
我解决了这个问题。
我需要重新编译Python,并加上一个选项--enable-unicode=ucs4。
不过我还是不太明白,为什么因为在Ubuntu的默认版本中已经是使用ucs4了。