包含python环境的Docker镜像,如python3.7
安装Oracle客户端 文件下载首先Oracle官网下载安装包:
- instantclient-basic-linux.x64-11.2.0.4.0
- instantclient-sqlplus-linux.x64-11.2.0.4.0
文件下载后放至镜像中 /usr/local/oracle 目录下
# 解压文件 mkdir /usr/local/oracle unzip /usr/local/oracle/instantclient-basic-linux.x64-11.2.0.4.0.zip unzip /usr/local/oracle/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip # 环境变量配置 cd /usr/local/oracle/instantclient_11_2 mkdir -p network/admin cd network/admin vi .bash_profile # 写入 export ORACLE_HOME=/usr/local/oracle/instantclient_11_2 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME:$PATH # 执行环境变量 source .bash_profile安装额外库
解决报错问题:
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”.
apt-get install -y libaio1安装cx_Oracle
pip install cx_Oracle -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/测试
import cx_Oracle as Ora
user_name = "username"
passwd = "passwd"
ip_port = "xxx.xxx.xxx.xxx:xxxx" # ip地址与端口号
conn = Ora.connect(user_name, passwd, '{}/dbdw'.format(ip_port), encoding='UTF-8')
cur = conn.cursor()
temp_resu = cur.execute(str1)
resu = temp_resu.fetchall()
conn.close()
print(rese) # 返回数据即表示成功
参考博客:
- linux安装oracle客户端
- 构建python连接oracle的docker镜像



