找不到Win7 64bit cx_Oracle cx_Oracle.pyd

时间:2016-06-05 11:37:01

标签: python windows oracle

我正在尝试从Python 3.5连接到Oracle DB 11.2g。 我试着用cx_Oracle运气了。如果您有更好的选择,欢迎其他方式。在这里你可以看到我为我的事业尝试了很多路线。

我从中下载了MS Windows安装程序3.5 https://pypi.python.org/pypi/cx_Oracle/5.2.1 从博客中读取,安装后我应该将cx_Oracle.pyd文件放到pythonpath中。但我只在其cx_Oracle-wininst.log文件中找到了测试和示例文件?甚至没有找到setup.py,我可以尝试使用安装程序留下的cx_Oracle-doc \ BUILD.txt来构建它。

这是我能找到的最佳建议: http://prasoon11.blogspot.fi/

在此之前我尝试过: pip install cx_Oracle 失败,错误代码为1 建立'cx_Oracle'扩展 错误:无法找到vcvarsall.bat

为了解决这个错误,我最终在这里: http://www.lfd.uci.edu/~gohlke/pythonlibs/ cx_Oracle-5.2.1 + oci12c-CP35-NONE-win32.whl

我怎么知道它试图使用哪个DLL?它似乎找到了一些DLL(我如何找到它?)但可能是因为驱动程序是oci12但我的Oracle的即时客户端DLL是11g。我认为Oracle即时客户端12c也适用于Oracle11g DB。如何告诉使用此驱动程序的Python3:cx_Oracle-5.2.1 + oci12c-cp35-none-win32.whl使用我下载的Oracle instantclient 12c? 或者我可以从某个地方获得oracle 11g cx_Oracle吗?

在python3代码中我尝试使cx_oracle找到oci.dll:

import os
os.environ["ORACLE_HOME"] = "path to folder containing oci.dll"

import cx_Oracle 
#dostuff

但是我收到了这个错误: ImportError:DLL加载失败:找不到给定的过程。 cx_Oracle是否使用注册表来查找oci.dll?

1 个答案:

答案 0 :(得分:-1)

你可以在这里获得11g cx:https://sourceforge.net/directory/os:windows/?q=cx_oracle-11g

乍一看,您似乎正在告诉您的库在文档文件夹中工作,这意味着您必须进入odbc并告诉它使用安装了oracle的目录和python作为文档存储区读取。看起来像一个简单的答案,但也许你只是错过了一些类似的东西。还要仔细检查您的路径是否在系统变量和用户帐户中,是否以管理员身份登录?我会再看看一些。但这至少是从sourceforge下载的开始。