Python连接Oracle数据库时遇到的坑及解决办法
本⽂不再维护,原⽂:
问题⼀:Python 连接 Oracle 数据库时报错 64-bit Oracle Client library cannot be loaded:
"F:\app\Administrator\product\11.1.0\db_1\BIN\oci.dll
原因:Python3.5 版本 64 位 oracle11g 32位 sqlplus 32位,连接后,报错如上。需要⼀个64位的
1. windows版 解决办法:
2)下载后解压放到 python 安装⽬录下:E:\python\python\instantclient_11_2
3)设置环境变量 path : E:\python\python\instantclient_11_2; 注意:后⾯必须添加 ; 隔开
4)配置完环境变量后,重启 pycharm,run 项⽬,问题就解决了
pycharm安装教程和使用
2. 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:连接:
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)再次运⾏时,即可成功。
问题⼆:ImportError :DLL load failed: 后⾯就是乱码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。