undefined symbol: PyUnicodeUCS2_Decode whilst trying to install psycopg2
I'm getting an error whilst trying to install psycopg2 on ubuntu 9.10 64 bit.
The error is:
>>> 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
I've tried dow开发者_C百科nloading the package from http://initd.org/pub/software/psycopg/ and installing it. I've tried by using easy_install too.
No error during the installation.
It's quite weird as my python (2.6.2) has been compiled with UCS4 and so the installation should just work without problems.
Any help would be appreciated.
Cheers
fixed it.
I had to recompile python with --enable-unicode=ucs4.
Still not clear why as the default version on ubuntu uses ucs4.
Like you say, your Python has been built UCS4. But the psycopg2 you're trying to install has been built against a Python built UCS2. Find one or build one against UCS4.
I had the same error when importing bx.intervals
from bx-python
:
undefined symbol: PyUnicodeUCS2_Decode
However, the python version I was using was already compiled with ucs4
. Apparently, bx-python
was built against a python version that was compiled with ucs2
. So I had to recompile python in the opposite way described by the OP: ./configure --enable-unicode=ucs2
.
In my case, using bash shell I had no issue and with csh faced this issue. Realized have multiple version of python installed. one defaulting in /usr/local/bin worked vs one in /bin exhibited the issue. Point being before you think you need to recompile with admin help check if you have any alternate version of python installed.
精彩评论