MacOS cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: 解决方案

Mac 电脑用Python程序处理Oracle数据库连接时遇到异常:cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded

解决方案如下:

准备工作:

下载instant client,可选19.3或者12.2 基础版或者基础轻量版,包的版本需要和自己电脑系统相匹配(64-bit 或者 32-bit )

我下载的是 instantclient-basiclite-macos.x64-19.3.0.0.0dbru.zip  官网下载地址 (受网速影响可能较慢)也可以自己百度或者使用CSDN资源

开始设置:

  1. 创建文件夹,并将压缩包解压到这个文件夹下

    mkdir -p /opt/oracle
    cp instantclient-basic-macos.x64-19.3.0.0.0dbru.zip /opt/oracle/(如果当前在下载文件所在目录下)
    cd /opt/oracle/
    unzip instantclient-basic-macos.x64-19.3.0.0.0dbru.zip
  2. 创建超链接,以使应用程序能够找到该库
    mkdir ~/lib
    ln -s /opt/oracle/instantclient_19_3/libclntsh.dylib ~/lib/

尝试运行程序,没有生效可以尝试重启系统。

运行程序,如果抛异常:cx_Oracle.DatabaseError: Error while trying to retrieve text for error ORA-01804

可以将instant client 路径添加到环境变量中,然后重启电脑,生效。

vi ~/.bash_profile 

export ORACLE_HOME=/opt/oracle/instantclient_19_3

export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_3:$LD_LIBRARY_PATH

你可能感兴趣的:(Oracle,Python,MacOS,cx_oracle,instant,client,Oracle)