2015-07-03 82 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