Python 3.6,cx_oracle 64 位上的 11g 客户端 windows

Python 3.6, cx_oracle for 11g client on 64-bit windows

我是 Python 的新手。在过去的几天里,我试图让 cx_oracle 使用 Anaconda3 (3.6) 和 11g Oracle 客户端在 64 位 Windows 8.1 上工作。

最后我设法使它工作,但它很麻烦。 Anaconda似乎是一个广泛使用的发行版,Windows一个常见的OS,cx_oracle windows二进制文件来自python.org,所以可以以下真的是方法吗?!?

  1. 我无法使用 Gholke's unofficial windows binaries 因为它必须适用于 11g 客户端。我只找到 12c 的包。

  2. 我也无法使 Visual C++ 构建工具 2015 (14.0)(没有足够的代表使 link )工作,得到一长串: cx_Oracle.obj : error LNK2001 :unresolved external symbol OCIxxxxxx.

    可能是我在 Oracle 客户端遗漏了什么?

最后,起作用的 是官方二进制文件 https://pypi.python.org/pypi/cx_Oracle 但不是开箱即用的:

一个。 运行 cx_Oracle-5.3-11g.win-amd64-py3.6.exe 作为管理员我得到一个提示: Python version 3.6-32 required, which is not found in the registry.

b。然后我不得不修改HKEY_LOCAL_MACHINE > SOFTWARE > Python > PythonCore > 3.6,将键值从3.6更改为3.6-32。现在安装程序允许我 select 一个 python 版本。

回头看描述似乎很简单。然而,我花了很长时间才找到答案,而且我不觉得搞乱 regedit.exe 有那么好。

我希望有人有更好的解决方案, 提前谢谢你:)

关于 cx_Oracle 5.3 版本的官方二进制文件:这是一个已知问题,现已解决。

我也在研究一种分发轮子而不是可执行安装程序的方法,以避免这种长期存在。