Mac 电脑用Python程序处理Oracle数据库连接时遇到异常:cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded
解决方案如下:
下载instant client,可选19.3或者12.2 基础版或者基础轻量版,包的版本需要和自己电脑系统相匹配(64-bit 或者 32-bit )
我下载的是 instantclient-basiclite-macos.x64-19.3.0.0.0dbru.zip 官网下载地址 (受网速影响可能较慢)也可以自己百度或者使用CSDN资源
创建文件夹,并将压缩包解压到这个文件夹下
mkdir -p /opt/oracle cp instantclient-basic-macos.x64-19.3.0.0.0dbru.zip /opt/oracle/(如果当前在下载文件所在目录下) cd /opt/oracle/ unzip instantclient-basic-macos.x64-19.3.0.0.0dbru.zip
创建超链接,以使应用程序能够找到该库 mkdir ~/lib ln -s /opt/oracle/instantclient_19_3/libclntsh.dylib ~/lib/
尝试运行程序,没有生效可以尝试重启系统。
运行程序,如果抛异常:cx_Oracle.DatabaseError: Error while trying to retrieve text for error ORA-01804
可以将instant client 路径添加到环境变量中,然后重启电脑,生效。
vi ~/.bash_profile
export ORACLE_HOME=/opt/oracle/instantclient_19_3
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_3:$LD_LIBRARY_PATH