python3.7 操作Oracle cx_Oracle.DatabaseError: DPI-1047

python3.7 操作Oracle cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library

环境:
win10 64位
python 3.7.5 (命令行:python --version)
conda 4.8.2 (命令行:conda --version
oracle-cilent 11_2 (plsql已经安装成功 说明ORACLE_HOME等环境变量已经配好)

  • 1 conda install cx_Oracle
    自行解决依赖等问题

  • 2 校验安装是否成功

import cx_Oracle   #是否报错 或者无法导入
# 获取数据库连接
username = "hello"
userpwd = "hello"
host = "192.0.0.1"
port = 1521  # 数字
dbname = "orcl"
dsnStr = cx_Oracle.makedsn(host, port, service_name=dbname)
connection = cx_Oracle.connect(username, userpwd, dsn=dsnStr)
print(connection)
sql = "select * from tablename"
data = pd.read_sql(sql, connection)   # 直接将读取的sql数据转换成数据框,有助于下一步的可视化和统计建模
print(data.head(3))

  • 3 出现问题1:
line 13, in cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". 
See https://oracle.github.io/odpi/doc/installation.html
  • 4 解决方法:
    第一步:将oracle中的3个文件进行copy(oracle 客户端文件中)
    D:\Program Files\PLSQL\instantclient_11_2\
    在这里插入图片描述
    第二步:将3个文件copy到
    D:\develop\python\Anaconda3\Lib\site-packages
    在这里插入图片描述
  • 5 出现问题 2:
    完全退出pycharm后重新打开,执行x.py文件 出现以下问题:
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
  • 6 问题二解决方案:
    解决方法1:按照上文中的python代码(oracle中的实例名等默认情况会出现问题)
    解决方法2:参考下边的文章 讲的很详细

    参考文章:

  • https://blog.csdn.net/AlanGuoo/article/details/88255194

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值