2012-09-07 70 views
0

環境:Windows 7上的Eclipse Indigo或Eclipse Juno 4.2 Oracle 11g XE(本地安裝) 在pydev中運行我的Django項目時,嘗試訪問頁面會導致消息「Unable to acquire Oracle environment處理」。無法獲取Oracle環境句柄

通常情況下,我必須做的是設置TNS_ADMIN指向正確的tnsnames.ora目錄。

如果我運行命令行manage.py,預期所有的作品。起初我以爲它可能是一個環境變量差異,但TNS_ADMIN值是相同的。無論如何,在Eclipse運行配置中明確設置TNS_ADMIN並沒有什麼不同。

PYTHONPATH是兩者之間有些不同,我去覆蓋它在運行的配置,看它是否取得了差的麻煩。不。

看看cx_Oracle源代碼,該錯誤似乎來自於調用OCIEnvNlsCreate失敗,但在Oracle文檔中我沒有看到任何明顯的東西。

誰能給我一個線索,爲什麼我在Pydev的得到這個?

回答

0

我想通了。我在PATH變量上看起來不夠努力。

基本上,有是一個需要它的腳本目錄(含OCI.DLL)是先在路徑的虛擬環境,但我的Oracle安裝在它前面的。因此,該錯誤信息是基本調用錯誤OCI.DLL(與我的Oracle安裝相關的一個,而不是一個cx_Oracle必定會)的結果。

激活虛擬環境中工作,因爲它改變了路徑。 Pydev的工作方式不同,因此Eclipse首先看到了我的標準安裝路徑。