一、参考链接:
真的是找遍了博客,要搞吐了才搞定。
二、背景:
在linux服务器上,使用python3连接oracle
linux 版本 centos 6.5 x86_64 64位的
python3.7
三 、安装
3.1 安装 instantclient
1、下载 instantclient-basic-linux.x64-12.2.0.1.0.zip
下载地址:
Instant Client for Linux x86-64 (64-bit)
2、在opt下新建oracle文件
mkdir -p /opt/oracle
cd /opt/oracle
3、将 instantclient-basic-linux.x64-12.2.0.1.0.zip 放到oracle文件下
a、将 instantclient-basic-linux.x64-12.2.0.1.0.zip 放到oracle文件下
b、解压
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
建立连接,依次执行下面命令就可以了
cd /opt/oracle/instantclient_12_2
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
sudo sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
3.2 安装 cx_Oracle==8.3.0
pip3 install cx_Oracle==8.3.0
-----------------------------这就可以用了-----------------------------
四、报错处理
4.1 cx_Oracle.DatabaseError: ORA-24454: 客户机主机名未设置
一行指令解决
sudo /bin/bash -c "echo '127.0.1.1 ${HOSTNAME}' >> /etc/hosts"
五、其他
当未安装instantclient时,执行python脚本会报错。
During handling of the above exception (DPI-1047: Cannot locate a 64-bit Oracle Client library: "/lib64/libc.so.6: version `GLIBC_2.17' not found (required by /opt/oracle/instantclient/lib/libclntsh.so)". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help), another exception occurred:
提示你按照 https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html
这个连接去解决,我试了半天这个连接里面的方法,都没搞定,最后用我这个博客搞定了。
我猜测肯定是版本问题,最后用12的版本搞定了。