5

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 downloading 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

Marco Fucci
  • 1,834
  • 2
  • 18
  • 21

4 Answers4

12

fixed it.

I had to recompile python with --enable-unicode=ucs4.

Still not clear why as the default version on ubuntu uses ucs4.

Marco Fucci
  • 1,834
  • 2
  • 18
  • 21
4

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.

Ignacio Vazquez-Abrams
  • 776,304
  • 153
  • 1,341
  • 1,358
  • Tnx but this is exactly what python ./setup.py build and python ./setup.py install should do. – Marco Fucci Apr 06 '10 at 11:12
  • I've tried the build/install and still getting this error when compiling my app. Can you share the location of this psycopg2 you used that worked? Thanks – Steve Peak Feb 02 '15 at 13:51
1

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.

pr94
  • 1,263
  • 12
  • 24
-1

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.

  • it doesn't seem to help to answer the question, just that you couldn't reproduce the failure. – dboy Apr 29 '20 at 22:40