<p>你在运行什么版本的Windows?是32位还是64位?</p>
<p>您的Oracle即时客户端是<a href="http://www.oracle.com/technetwork/topics/winsoft-085727.html">32</a>位还是<a href="http://www.oracle.com/technetwork/topics/winx64soft-089540.html">64</a>位?</p>
<p>您的Python安装是<a href="http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi">32</a>位还是<a href="http://www.python.org/ftp/python/2.7.3/python-2.7.3.amd64.msi">64</a>位?</p>
<p>您的cx_oracle是正确的版本吗?<a href="http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.1.2-11g.win32-py2.7.msi?download">32</a>或<a href="http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.1.2-11g.win-amd64-py2.7.msi?download">64</a>位?</p>
<p> MVCR90.DLL是微软Visual C++ 2008 SP1可重分发软件包的一部分。</p>
<p>32位版本可用<a href="http://www.microsoft.com/en-us/download/details.aspx?id=5582">here</a>,64位版本可用<a href="http://www.microsoft.com/en-us/download/details.aspx?id=2092">here</a>。</p>
<p>IESHIMS.dll将位于<code>C:\Program Files\Internet Explorer\Ieshims.dll</code>(32位Windows位置或64位Windows位置)或C:\ Program Files\Internet Explorer(x86)IESHIMS.dll`(64位Windows上的32位Windows位置),如果您的Windows版本是Vista或更高版本。</p>
<p>GPSVC.dll应该位于<code>C:\Windows\System32</code>中。</p>
<p>依赖项Walker将这最后两个DLL报告为丢失,因为Windows错误报告使用IEFrame.DLL并延迟加载,这意味着它们可能永远不需要。</p>
<p>我发现,为了让cx_oracle干净地导入,您需要确保其依赖项的版本匹配。您还需要确保Oracle客户端安装与您的<code>ORACLE_HOME</code>匹配,并且您的路径变量包含<code>%ORACLE_HOME%/bin</code>,它被设置为环境变量或在注册表中,并且您的tnsnames.ora文件位于TNS_ADMIN设置为的值中。如<strong>Emmanuel</strong>的答案中所述,未设置的TNS_管理设置的默认值是<code>%ORACLE_HOME%\network\admin</code>。</p>
<p>我也很少使用oracle安装程序的即时客户端版本,除非绝对必要,因为与其他版本不同,它没有设置总是确保设置或维护了路径、oracle\U HOME或TNS\U ADMIN正确,这导致找不到tnsnames.ora和OCI.dll。当同一台计算机上有多个Python版本或Oracle版本时,这会变得更加复杂。</p>
<p>要显式设置它们,可以使用环境变量(用户或系统),这些变量位于“控制面板”中的“系统”图标、“高级系统设置”任务、“高级”选项卡、“环境”按钮下。</p>
<p>关于<code>InterfaceError: Unable to acquire Oracle environment handle</code>,当与不解析OCI.dll相反时,这种情况会特别发生,cx悻Oracle不知道要使用哪个OCI.dll,通常情况下是这样的,因为PATH变量包含两个或多个包含OCI.dll的搜索目录。</p>
<p>特别是确保您的路径只包含即时客户端安装或Oracle 11G XE安装中的OCI.dll的一个瞬间,应该可以解决您的问题。</p>
<p>在安装Oracle11gXe之前是否卸载了即时客户端?</p>
<p>在命令提示中粘贴以下内容。</p>
<p><code>echo The current ORACLE_HOME is %ORACLE_HOME%</code></p>
<p><code>echo The current TNS_ADMIN is %TNS_ADMIN%</code></p>
<p><code>echo The current PATH is %PATH%</code></p>
<p>查看这些变量的当前值。</p>
<p><strong>更多资源</strong></p>
<ul>
<li><a href="http://lh5.ggpht.com/_0E9WO5RZWuc/TTSeprYupvI/AAAAAAAACSU/KVeURAM90Is/image_thumb%5B3%5D.png?imgmax=800">Example picture of setting environment variable</a></li>
<li><a href="http://comments.gmane.org/gmane.comp.python.db.cx-oracle/2173">cx_oracle mailing post regarding missing TNS_ADMIN</a></li>
<li><a href="http://mostperfect.net/blog/2010/07/28/installing-cx_oracle-on-windows/">Installation instructions for cx_oracle on Windows</a></li>
</ul>