File "/Users/lukezhi/Lucas/Lucas-Projects/PythonProj/hongDaoProjects/symptomCluster/extract_Dis_Sym_Umls.py", line 8, in
conn=cx_Oracle.connect('umls/[email protected]: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
将程序包解压缩到应用程序可访问的单个目录中。例如:
mkdir -p /opt/oracle unzip instantclient-basic-macos.x64-12.2.0.1.0.zip
添加链接$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/
如果您打算同定位可选的Oracle配置文件,如tnsnames.ora
,sqlnet.ora
或oraaccess.xml
与即时客户端,然后创建一个network/admin
子目录。例如:
mkdir -p /opt/oracle/instantclient_12_2/network/admin
这是与此Instant Client链接的应用程序的默认Oracle配置目录。
或者,Oracle配置文件可以放在另一个可访问的目录中。然后将环境变量 TNS_ADMIN
设置为该目录名称。