【发布时间】:2016-06-05 11:37:01
【问题描述】:
我正在尝试从 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 文件中找到了测试和示例文件?甚至没有找到我可以尝试使用安装程序留下的 cx_Oracle-doc\BUILD.txt 构建它的 setup.py。
这是我能找到的最好的建议: http://prasoon11.blogspot.fi/
在此之前我确实尝试过: 点安装 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?
【问题讨论】: