python 和甲骨文

标签 python django oracle

我希望能够通过 python 连接到 Oracle 10.1.0.2.0(安装在不同的机器上)。

我的 comp 在安装了 Python 2.6 的 Ubuntu 9.04 Jaunty 上运行。

我已经下载并解压了 instantclient-basic-linux32-10.1.0.5-20060511.zip ,设置 LD_LIBRARY_PATHORACLE_HOME 指向我解压的目录。 然后我下载了 cx_Oracle-5.0.2-10g-py26-1.i386.rpm 并安装了它:

$sudo alien -i cx_Oracle-5.0.2-10g-py26-1.i386.rpm

当我运行时

$python -c 'import cx_Oracle'

我得到:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib/python2.6/cx_Oracle.so: undefined symbol: OCIClientVersion

帮助将不胜感激。

最佳答案

我相信 OCIClientVersion 需要 Oracle 10g 第 2 版,但您使用的是第 1 版。

您下载的 cx_Oracle 二进制文件似乎是使用 -DORACLE_10GR2 编译的,这使得它包含 OCIClientVersion 调用。由于这是一个仅限编译时的选项,因此确实应该分别下载 10g 和 10gR2,但似乎没有:

This module has been built with Oracle 9.2.0, 10.2.0, 11.1.0 on Linux

因此您可能需要下载 cx_Oracle 源代码并自行构建它们。 (因此,您将需要 Python 和 Oracle 客户端 header 。)

或者,您可以尝试为 Oracle 9i 构建 cx_Oracle。这听起来有点狡猾,但显然应该有效。

关于 python 和甲骨文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796198/

相关文章:

python - Django 找不到已安装的应用程序

mysql - Python 字节到 geojson 点

Oracle SQL Developer 脚本输出不显示可读格式

sql - 如何从 Oracle 过程返回填充有 NESTED RECORD 类型的游标

linux - 如何将 Oracle 中的数据库模式导出到转储文件

python - Haystack 自定义表单字段未显示在模板中

Python urlopen IO错误: [Errno socket error] [Errno 10060]

python - Matplotlib 数据帧关键错误

python - 有没有办法以编程方式将韩文 unicode 合并为一个?

python - 在 Python 中,如何确保在离开代码块之前始终关闭数据库连接?