【问题标题】:Can't install oracle client for oracle_cx on mac无法在 mac 上为 oracle_cx 安装 oracle 客户端
【发布时间】:2021-08-02 11:17:45
【问题描述】:

尝试为 oracle_cx 安装 oracle 客户端。当我尝试安装 oracle 时

我收到了这条消息:

install_ic.sh                                                     
    /Users/ user/Downloads/instantclient_19_8
    Creating dir: /Users/ user/Downloads/instantclient_19_8...
    Copying /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru files ...
    Using existing dir: /Users/ user/Downloads/instantclient_19_8...
    Copying /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru files ...
    Using existing dir: /Users/ user/Downloads/instantclient_19_8...
    Copying 1 files ...
    cp: 1/*: No such file or directory
    Using existing dir: /Users/ user/Downloads/instantclient_19_8...
    Copying /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru files ...
    Using existing dir: /Users/ user/Downloads/instantclient_19_8...
    Copying 2 files ...
    cp: 2/*: No such file or directory

因此,当我在此之后尝试使用 cx_oracle 时出现错误:

DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 1): image not found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

我做错了什么?

【问题讨论】:

    标签: oracle cx-oracle


    【解决方案1】:

    找到https://cx-oracle.readthedocs.io/en/latest/user_guide/initialization.html#usinginitoracleclient,可以使用以下方式初始化oracle客户端:

    import cx_Oracle
    import sys
    import os
    
    try:
        if sys.platform.startswith("darwin"):
            lib_dir = os.path.join(os.environ.get("HOME"), "Downloads",
                                   "instantclient_19_8")
            cx_Oracle.init_oracle_client(lib_dir=lib_dir)
        elif sys.platform.startswith("win32"):
            lib_dir=r"C:\oracle\instantclient_19_9"
            cx_Oracle.init_oracle_client(lib_dir=lib_dir)
    except Exception as err:
        print("Whoops!")
        print(err);
        sys.exit(1);
    

    所以我粘贴了

    lib_dir = os.path.join(os.environ.get("HOME"), "Downloads",
                                   "instantclient_19_8")
    cx_Oracle.init_oracle_client(lib_dir=lib_dir)
    

    在光标定义和 cx_oracle 开始正常工作之前。

    【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2019-10-19
    • 2020-04-01
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多