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

前提条件

  • 1.cx_Oracle包 下载地址
  • 2.oracle install client 下载链接

安装步骤

安装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

你可能感兴趣的:(Python,数据库,oracle,linux,python)