2015-07-03 84 views
0

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

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

+0

您应该尝试改进问题中的格式 – TheGeorgeous

回答

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