无法在Mac中加载64位Oracle Client库

时间:2018-11-01 09:29:12

标签: python oracle macos instantclient

我为Oracle数据库连接创建了一个示例Python脚本,用于运行数据库测试查询,我在Windows上运行了相同的脚本,并且运行良好,但是在Mac上运行时,它一次又一次地向我展示了此异常。

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "dlopen(libclntsh.dylib, 1): image not found". See https://oracle.github.io/odpi/doc/installation.html#macos for help

我已经在bash_profile上更改了我的环境变量,如下所示:

export ORACLE_HOME= /opt/oracle/instantclient_12_2/
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

仍然无法正常工作。有人可以在这里帮我吗。谢谢

1 个答案:

答案 0 :(得分:1)

Installation Instructions中确保您没有使用默认的Python二进制文件。

然后,如您所知,在新的python上安装cx_Oracle。

最后,请确保已解压缩并配置Instant Client:

mkdir ~/lib
ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib ~/lib/

没有设置DYLD_LIBRARY_PATH的意义,因为macOS的SIP保护使其无法正常工作。自cx_Oracle 5天以来,无需为cx_Oracle设置ORACLE_HOME。 LD_LIBRARY_PATH主要是UNIX,所以也不要设置。