Linux利用jupyter的python连接oracle数据库

前提条件

安装步骤

安装cx_Oracle

cx_Oracle的下载需要对应自己的python版本

如何查看python版本

import sys
print(sys.version)

我的是py3.6 故下载 ——>cx_Oracle-8.2.1-cp36-cp36m-manylinux1_x86_64

传到服务器上后,打开anaconda的目录

即XXXX/anaconda3/bin 下

./pip install XXX/XXX/cx_Oracle-8.2.1-cp36-cp36m-manylinux1_x86_64.whl

显示安装successfully 即可。

安装oracle install client

这一步是关键,毕竟网上这一步的教程非常多,所以查阅起来有些摸不着头脑

并且安装错误的话报的错误基本一致

报错信息


Traceback (most recent call last): File “python/init.py”, line 282, in getAndExecuteInput
File “”, line 1, 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#linux for help

这里参考stackoverflow 1 | stackoverflow 2

我选择的是 Instantclient-basic-linux.x64-21.3.0.0.0.zip

放入服务器内,解压后 文件夹 改名为instantclient

最后,我添加了外部变量的路径 LD_LIBRARY_PATH
$ vim ~/.bashrc  
并将这一行添加到.bashrc文件中
export LD_LIBRARY_PATH=/usr/local/instantclient:$LD_LIBRARY_PATH  
export PATH=/usr/local/instantclient:$PATH  
保存.bashrc文件后,我找到了它:
 $ source ~/.bashrc

这些步骤全部操作完后:

一定要重启jupyter!重启jupyter!重启jupyter!

并且重启后

import os
print(os.environ["PATH"])

如果打印包含 instantclient 的路径即可。

连接oracle

import cx_Oracle
import pandas as pd
#获取数据库连接
username="****"
userpwd="****"
host="****"
port=1521
dbname="****"
dsn=cx_Oracle.makedsn(host, port, dbname)
connection=cx_Oracle.connect(username, userpwd, dsn)
sql="select * from ****  where rownum<5"
data = pd.read_sql(sql,connection)  ##直接将读取的sql数据转换成数据框,有助于下一步的可视化和统计建模
data.head(n=2)

代码参考Linux上Python连接Oracle解决报错cx_Oracle.DatabaseError: DPI-1047

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值