我正在尝试使用cx_Oracle(64位python)访问我的Oracle数据库。我遵循了指令here。
我安装了cx_Oracle 7.2.3
,并用instantclient-basic-windows.x64-19.3.0.0.0dbru.zip
下载了VC 2015-2019
(使用页面中的链接)
实际上,我已经安装了几乎所有版本的VC ++
我将Oracle Instant Client文件夹添加到我的系统环境变量中,并通过在cmd中键入'PATH'进行了仔细检查。
但是,当我运行cx_Oracle.connect('xxx')
时,仍然出现错误,
cx_Oracle.DatabaseError:DPI-1047:无法找到64位Oracle客户端库:“找不到指定的模块”。参见https://oracle.github.io/odpi/doc/installation.html#windows以获取帮助
错误可能是什么原因?如何解决?
此错误的发生主要是因为InstantClient版本和cx_Oracle不兼容。解决方案是用错误消息中提到的所需版本(在您的情况下为64位)替换InstantClient。
如何替换即时客户端:然后,如果问题仍然存在,请在Oracle Downloads上找到最新的InstantClient(警告!版本,其错误不是您的Python / Windows版本,在上述情况下为64位),下载并替换为您当前在系统变量上使用的PATH即可用您当前的InstantClient文件夹替换新下载的内容。
此外,建议的方法是检查与您的Oracle DB版本相对应的VS可再发行版本是否正确,并按照cx_oracle Docs中的说明进行安装,但在我们很多情况下,这没有引起问题。