概述
64位的计算机,使用Python连接数据库时,PyCharm报错,DPI-1047:oci.dll is not the correct architecture
上网搜到的解决方案都是将32位的dll改为64位的dll
我是用的Oracle为11.2.0.1.0 64位,目前官网已有的版本为11.2.0.4.0 64位,实测可以用该版本的oci.dll直接覆盖1.0的版本
官网地址:Instant Client for Microsoft Windows (x64) 64-bit
现在Python使用的版本为3.6.8 64位,Oracle为11.2.0.1.0 64位,cx_Oracle 需对应Python版本,为64位(如果Python版本为64位,则无法安装32位的cx_Oracle)
查看Oracle版本:
在PL/SQL Developer中,打开一个SQL窗口,输入以下命令
select * from v$version
安装对应版本的cx_Oracle:
选择匹配对应python版本的包
下载地址为:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook
我的Python版本为3.6.8,应当下载的版本为cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl【36为对应版本】
若已经安装过cx_Oracle,则先卸载
pip uninstall cx_Oracle
在下载的whl文件的文件夹中打开命令行窗口,输入命令
pip install cx_Oracle-8.1.0-cp36-cp36m-win_amd64.whl
问题:
PL/SQL只支持32位的oci.dll,连接数据库需要64位的oci.dll,这两项就完全冲突了。
解决方案:
将原有的Oracle目录中的dll备份到某个文件夹中(尽量用英文,中文可能会出错我也不清楚是为什么)
下载官网的Oracle 11.2.0.1.0版本,解压后获取到所有的dll,粘贴到已存在的oracle目录中进行覆盖。
打开PL/SQL,工具->首选项->连接:
在Oracle主目录里填写要使用的64位Oracle目录,在下面的oci库中填入备份的32位的oci.dll所在的目录
最后
以上就是清新流沙为你收集整理的cx_Oracle连接Oracle数据失败错误DPI-1047,解决版本不同问题的全部内容,希望文章能够帮你解决cx_Oracle连接Oracle数据失败错误DPI-1047,解决版本不同问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复