macos下用python使用cx_Oracle连接oracle数据库,报错cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client librar

  • Post author:
  • Post category:python


File “/Users/lukezhi/Lucas/Lucas-Projects/PythonProj/hongDaoProjects/symptomCluster/extract_Dis_Sym_Umls.py”, line 8, in <module>

conn=cx_Oracle.connect(‘umls/umls733@211.71.76.139:1521/orcl’)    #连接数据库

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

解决方法:

1:确保你的python安装好了cx_Oracle;

2:打开

https://oracle.github.io/odpi/doc/installation.html#macos

,点击here,然后进入去下载oracle instant client zip文件

我这里下载的是64位版本:

instantclient-basic-macos.x64-11.2.0.4.0.zip

3:接下来开始在mac下安装需要的oracle instant client

  1. 将程序包解压缩到应用程序可访问的单个目录中。例如:

    mkdir -p /opt/oracle
    unzip instantclient-basic-macos.x64-12.2.0.1.0.zip
    
  2. 添加链接

    $HOME/lib



    /usr/local/lib

    使应用程序能够找到库。例如:

    mkdir ~/lib
    ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/
    

    或者,复制所需的OCI库。例如:

    mkdir ~/lib
    cp /opt/oracle/instantclient_12_2/{libclntsh.dylib.12.1,libclntshcore.dylib.12.1,libons.dylib,libnnz12.dylib,libociei.dylib} ~/lib/
    

    对于Instant Client 11.2,必须复制OCI库。例如:

    mkdir ~/lib
    cp /opt/oracle/instantclient_11_2/{libclntsh.dylib.11.1,libnnz11.dylib,libociei.dylib} ~/lib/
    
  3. 如果您打算同定位可选的Oracle配置文件,如

    tnsnames.ora



    sqlnet.ora



    oraaccess.xml

    与即时客户端,然后创建一个

    network/admin

    子目录。例如:

    mkdir -p /opt/oracle/instantclient_12_2/network/admin
    

    这是与此Instant Client链接的应用程序的默认Oracle配置目录。

    或者,Oracle配置文件可以放在另一个可访问的目录中。然后将环境变量

    TNS_ADMIN

    设置为该目录名称。



版权声明:本文为qq_31747765原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。