64-位Oracle客户端库无法在mac中加载

1u4esq0p  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(132)

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


还是不行谁能帮帮我。谢啦,谢啦

zfciruhq

zfciruhq1#

从安装说明中确保您没有使用默认的Python二进制文件。(更新:使用最新版本的cx_Oracle,现在称为python-oracledb,请参阅这些Installation Instructions。在最近的macOS版本中,它可以与macOS Intel和M1/M2上的默认python3可执行文件一起使用。
然后在新的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的东西,所以也不要设置它。

相关问题