CX Oracle.Итак: неопределенный символ: PyUnicodeUCS2 AsEncodedString

Я имею issiues установка cx_oracle. Я установил oracle instantclient и cx_oracle oracle packages, установленные я получаю эту ошибку при импорте cx_oracle. я запускаю ubuntu 11.10 в качестве хоста.

import cx_Oracle
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: /usr/lib/python2.7/dist-packages/cx_Oracle.so: undefined symbol:PyUnicodeUCS2_AsEncodedString

любой имеет представление о том, как решить эту проблему

ура

2 ответов


скорее всего, ваша установка Python использует другой формат unicode (ucs4), а cx_oracle был скомпилирован с ucs2.

вы можете установить cx_Oracle 5.0.4 с флагом unicode. Это сработало для меня, но есть какая-то ошибка: странная ошибка Oracle:"недопустимый текст формата"

или скомпилировать последний cx_oracle себя. http://mrpolo.com.ve/?p=178 (его какой-то язык я не знаю, но это помогло)


я дополнение к @froZieglers ответ. Когда я пришел по cx_Oracle страница не существует "...Юникод..."- Вариант для загрузки больше. К счастью, компиляция его из источника не была большой проблемой, тогда я ожидал.

вот резюме о том, что я сделал (Ubuntu 12.04 LTS, 64bit):

  • установить правильно Oracle XE client rpm С alien (11g, 64bit и т. д...)
    • он устанавливает th /u01/..., Я должен был настроить .profile тоже курс.
  • скачать источник cx_Oracle-tar, унтар, кд в
    • Я ln -s команда на so-lib на Oracle, как сказано в BUILD текстовый файл
  • установить заголовки Python С sudo aptitude install python-dev
  • Compile С python setup.py build
  • установить С sudo python setup.by install
    • сначала попробуй ошибка с distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation
    • пропатчил setup.py С userOracleHome = "/u01/app/oracle/product/11.2.0/xe" после os.getenv("ORACLE_HOME")
    • работала
  • Регистрация С python -c 'import cx_Oracle' удалось.