在路径中多个Oracle客户端时使用cx_oracle

时间:2015-07-03 17:29:20

标签: python oracle cx-oracle

我使用cx_Oracle访问Oracle数据库已有一段时间了,它运行正常。现在,我的同事想要运行我的脚本,我们遇到了cx_Oracle的问题。 Wile尝试连接数据库时遇到错误:InterfaceError:无法获取Oracle环境句柄。 我在stackoverflow帖子上读到可能的错误是在路径上找到了多个oci.dll文件。在我们的例子中,我们安装了两个即时客户端,我安装了即时客户端12,还有一个非常旧的安装,之前安装了一些其他应用程序。如何告诉Python使用哪个即时客户端?

她正在使用Windows XP,我安装了她的即时客户端12,python 3.4和cx_oracle 5.2,全部是32位。

1 个答案:

答案 0 :(得分:0)

您需要确保PATHORACLE_HOME环境变量指向同一个Oracle客户端安装。对于PATH(您暗示可能包含多个Oracle客户端安装),您需要确保首先显示您要使用的那个。

您可能希望将Python脚本包装在批处理文件中,以确保在启动解释器之前正确设置这些变量,而不是依赖于这些环境变量的系统范围设置。例如,假设您将Oracle 12.1即时客户端安装到C:\Oracle\instantclient_12_1

@ECHO OFF
SET ORACLE_HOME=C:\Oracle\instantclient_12_1
SET PATH=C:\Oracle\instantclient_12_1;%PATH%
python path_to_my_script.py