美文网首页
python3 Linux下连接oracle数据库,报错解决。

python3 Linux下连接oracle数据库,报错解决。

作者: Ziger丶 | 来源:发表于2022-06-17 09:58 被阅读0次

    linux环境下使用python连接Oracle需要使用cx-Oracle和instantclient-。


    一、安装cx_Oracle

    外网环境直接

    pip install cx_Oracle
    

    内网环境
    官网上下载wheel文件,导入内网环境后install

    import cx_Oracle
    
    conn = cx_Oracle.connect(rkcx_zhanghao/rkcx_mima@10.64.54.93:31521/rkqry) 
    

    直接运行会报错

    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".

    是因为环境变量配置不正确,导致libclntsh.so这个文件没有找到


    一、Oracle Instant Client

    Oracle官网

    检查Oracle数据库的版本以及系统类型下载相应的文件!!!
    我的oracle是11.2.0版本的对应下载压缩包:

    instantclient-basic-linux.x64-11.2.0.4.0.zip

    linux环境客户端需要依赖 libaio yum install libaio

    然后新建一个文件夹

    mkdir -p /home/test/oracle
    

    压缩包移过去后,解压

    unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
    

    解压完成后,生成新生成的文件夹 instantclient_11_2
    新增环境配置,在用户路径下 ls -a 查看 .bash_profile文件。

    系统配置为
    [test@tandel_191 ~]# vim /etc/.bash_profile
    只为当前用户配置为
    [test@tandel_191 ~]# vim /home/test/.bash_profile

    打开文件后
    在~/.bash_profile文件末尾加入以下内容

    export LD_LIBRARY_PATH=/home/test/oracle/instantclient_11_2:$LD_LIBRARY_PATH
    

    如果python输出字符串乱码或报错,在~/.bash_profile后添加

    export  LC_ALL='en_US.UTF-8'
    

    编辑完成后,激活配置的文件

    [test@tandel_191 ~]source /home/test/.bash_profile

    然后可以查看刚刚配置的环境路径是否正确

    [test@tandel_191 ~]echo $LD_LIBRARY_PATH


    三、其他

    参考网址

    相关文章

      网友评论

          本文标题:python3 Linux下连接oracle数据库,报错解决。

          本文链接:https://www.haomeiwen.com/subject/fysqvrtx.html