我为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
仍然无法正常工作。有人可以在这里帮我吗。谢谢
答案 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,所以也不要设置。