【问题标题】:64-bit Oracle Client library cannot be loaded in macmac无法加载64位Oracle客户端库
【发布时间】:2019-04-05 12:13:41
【问题描述】:

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

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

【问题讨论】:

    标签: python oracle macos instantclient


    【解决方案1】:

    Installation Instructions 确保您没有使用默认的 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 的东西,所以也不要设置它。

    【讨论】:

    • 安装说明页面不存在
    • 我已经更新了网址。昨天的一次重大文档更新导致层次结构发生变化。
    • 请参阅stackoverflow.com/a/69169723/4799035 了解最新信息。
    猜你喜欢
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多