使用Python的Oracle DB连接错误-cx_Oracle:cx_Oracle.DatabaseError:DPI-1047

问题描述 投票:0回答:1

我正在尝试使用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以获取帮助

错误可能是什么原因?如何解决?

python cx-oracle
1个回答
0
投票

此错误的发生主要是因为InstantClient版本和cx_Oracle不兼容。解决方案是用错误消息中提到的所需版本(在您的情况下为64位)替换InstantClient。

如何替换即时客户端:然后,如果问题仍然存在,请在Oracle Downloads上找到最新的InstantClient(警告!版本,其错误不是您的Python / Windows版本,在上述情况下为64位),下载并替换为您当前在系统变量上使用的PATH即可用您当前的InstantClient文件夹替换新下载的内容。

此外,建议的方法是检查与您的Oracle DB版本相对应的VS可再发行版本是否正确,并按照cx_oracle Docs中的说明进行安装,但在我们很多情况下,这没有引起问题。

© www.soinside.com 2019 - 2024. All rights reserved.