1

我已经为 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

还是行不通。有人可以在这里帮助我。谢谢

4

1 回答 1

3

安装说明中确保您没有使用默认的 Python 二进制文件。

然后在新的 python 上安装 cx_Oracle,就像你已经知道的那样。

更新:对于当前版本的 Instant Client,以下步骤已过时。只需按照上面的安装说明链接即可。

最后,确保 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 的东西,所以也不要设置它。

于 2018-11-13T05:06:12.900 回答