本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

1267

Python 连接 Oracle 数据库时遇到的坑及解决办法

编程技术 | WangTwoThree | 2019-10-29 | 等你评论 | 0 次点赞
问题一:Python 连接 Oracle 数据库时报错 64-bit Oracle Client library cannot be loaded: "F:appAdministratorproduct11.1.0db_1BINoci.dll

原因:Python3.5 版本 64 位 oracle11g 32位 sqlplus 32位,连接后,报错如上。需要一个64位的

  1. windows版 解决办法:

    1)下载 instantclient-basic 64位的 地址:https://www.oracle.com/technetwork/topics/winx64soft-089540.html 
    
    2)下载后解压放到 python 安装目录下:E:\python\python\instantclient_11_2 
    
    3)设置环境变量 path : E:\python\python\instantclient_11_2;  注意:后面必须添加 ; 隔开
    
    4)配置完环境变量后,重启 pycharm,run 项目,问题就解决了
    
  1. LINUX版解决办法:

    检查 linux 系统中 python2.7 版本和 python3.6 版本是 32 位还是 64 位的命令如下:

    import platform 
    platform.architecture()

    问题概况:centos 中自带64位的 python2.7.5 ,在 docker 中又安装了个 64 位的 python3.6,本地安装的是 3.5 版本的 python,将程序放到 docker 中运行,注意1:

    #!usr/bin/env python3

    (注意:我开始写的 python,后面没有改成 3,所以即使安装了 pandas-py3.6 ,运行依然提示: no module named 'pandas',紧急之下,我给系统的 python2.7 卸载了,大坑,导致 yum、gcc 都无法安装了,切记:直接在程序开头:将 python 改成 python3 就可以了,如果遇到其他情况,欢迎留言交流。 )

    注意2:python2.7、python3.6 都是64位,cx_Oracle 也是按照 python3.6 版本兼容下载的,为啥就是报错:DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded:

    解决办法如下:

    1)下载linux版64位的instanclient,我下载的是instanclient11-2:连接:

    https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

    2)在下载界面找到oracle对应的版本,复制连接

    3)在linux系统中新建文件夹,使用wget +连接,下载到当前新建的文件夹/home/instanclient中。

    4)将instanclient移动至python3.6安装目录下

    5)配置环境变量:

    6)在/etc/profile配置文件中配置:

    7)vi /etc/profile

    export

    LD_LIBRARY_PATH=/usr/local/lib/python3.6/instantclient_11_2:$LD_LIBRARY_PATH

    8)保存,退出

    9)source profile激活刚刚的配置文件

    10)再次运行时,即可成功。

以上 via:https://blog.csdn.net/weixin_39976528/article/details/83818542

问题二:ImportError :DLL load failed: 后面就是乱码

解决方法:import cx_Oracle 时,出现以上错误。将 oci.dll 文件复制一份放到 python 安装目录的 Libsite-packages 下面就可以了。

问题三:cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle

解决方法:oraociei11.dll 复制到 python 安装目录的 Libsite-packages 下面


猜你喜欢

暂无评论

有话要说

tips:首次评论须经过审核才会显示,请不要重复提交
本页二维码

扫码手机打开

浏览TOP5
热门标签
点赞TOP5
最新评论
别人在看