Python cx_Oracle.so:未定义符号:PyUnicodeCs2_asencodeString
我正在安装cx_oracle。我已安装oracle instantclient和cx\ U oracle软件包已安装oracle软件包导入cx\ U oracle时出现此错误。我正在运行Ubuntu11.10作为主机Python cx_Oracle.so:未定义符号:PyUnicodeCs2_asencodeString,python,cx-oracle,Python,Cx Oracle,我正在安装cx_oracle。我已安装oracle instantclient和cx\ U oracle软件包已安装oracle软件包导入cx\ U oracle时出现此错误。我正在运行Ubuntu11.10作为主机 import cx_Oracle Traceback (most recent call last): File "<console>", line 1, in <module> ImportError: /usr/lib/python2.7/dist-pa
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
导入cx\u Oracle
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
导入错误:/usr/lib/python2.7/dist-packages/cx_Oracle.so:未定义的符号:pyunicodecs2_asencodestring
有人知道如何解决这个问题吗
干杯很可能您的Python安装使用了另一种unicode格式(ucs4),而cx_oracle是使用ucs2编译的 您可以安装带有unicode标志的cx_Oracle 5.0.4。这对我来说很有效,但有一些缺陷: 或者自己编译最新的cx_oracle。
(这是一种我不知道但很有用的语言)除了@froZieglers的答案,我还补充了一句。当我来到
cx\u Oracle
页面时,已经没有“…Unicode…”变体可供下载了。幸运的是,我自己从源代码处编译它并不像我想象的那么麻烦
下面是我所做工作的总结(Ubuntu 12.04 LTS,64位):
- 使用alien(11g、64位等)安装正确的Oracle XE客户端rpm
- 它安装了th
,当然,我也必须调整/u01/…
.profile
- 它安装了th
- cx\U Oracle源tar,卸载,cd到
- 我对Oracle上的so库执行了
命令,如ln-s
text文件中所述BUILD
- 我对Oracle上的so库执行了
- 使用
sudoaptitude安装Python-dev
- 使用
python setup.py build编译
- 安装使用
sudo python setup.by安装
- 首次尝试失败,出现
distutils.errors.DistutilsSetupError:找不到Oracle软件安装
- 使用设置
在userOracleHome=“/u01/app/oracle/product/11.2.0/xe”
os.getenv(“oracle\u HOME”)之后修补
setup.py
然后工作sudo python setup.by安装
- 首次尝试失败,出现
- 使用
python-c“导入cx\u Oracle”检查成功