无法获得Oracle环境句柄

时间:2012-09-07 14:55:25

标签: eclipse pydev

环境:Windows 7上的Eclipse Indigo或Eclipse Juno 4.2 Oracle 11g XE(本地安装) 在pydev中运行我的Django项目时,尝试页面访问会导致消息“无法获取Oracle环境句柄”。

通常,我所要做的就是将TNS_ADMIN设置为指向正确的tnsnames.ora目录。

如果我从命令行运行manage.py,则所有工作都按预期工作。我首先想到它可能是一个环境变量差异,但TNS_ADMIN值是相同的。无论如何,在Eclipse运行配置中显式设置TNS_ADMIN并没有什么区别。

PYTHONPATH在两者之间有所不同,我在运行配置中遇到了覆盖它的麻烦,看它是否有所不同。不。

查看cx_Oracle源代码时,错误似乎来自对OCIEnvNlsCreate的调用失败,但我在Oracle文档中没有看到任何明显的内容。

任何人都可以告诉我为什么我在Pydev中得到这个?

1 个答案:

答案 0 :(得分:0)

我明白了。我对PATH变量的看法不够。

基本上,有一个虚拟环境需要其脚本目录(包含OCI.DLL)作为路径中的第一个,但我的Oracle安装已经领先于它。因此,错误消息基本上是调用错误的OCI.DLL(与我的Oracle安装相关联,而不是cx_Oracle绑定的那个)的结果。

激活虚拟环境是有效的,因为它改变了路径。 Pydev的工作方式不同,因此Eclipse首先看到了Oracle安装的标准路径。