2012-09-07 71 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首先看到了我的标准安装路径。