说在前面
笔者通过py3连接数据库的时候出现一下错误:
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
在通过数篇博客查阅后,发现需要一行操作mkdir /opt/oracle
,可是发现此文件夹不存在。其实在mbp(MOS10.14.5版本)是没有opt这个文件夹的,踩坑。经过2天爬出来了....
解决方法
安装cx_oracle
pip install cx_oracle
下载
去oracle下载mac版本64bit
的client basic
和client sdk
,笔者下的是18.1


编译安装
mkdir opt #因为mac没有opt文件夹
mkdir /Users/username/opt/oracle #username指的是自己设定用户名称
# 可以直接解压缩并移动到oracle文件夹中的,也可以通过命令去完成
unzip instantclient-sdk-macos.x64-18.1.0.0.0-2.zip #解压
unzip instantclient-basic-macos.x64-18.1.0.0.0.zip #解压
cd instantclient_18_1 2/sdk
unzip ottclasses.zip
cd ..
cp -R ./sdk/* .
cp -R ./sdk/include .
ln -s libocci.dylib.18.1 libocci.dylib
ln -s libclntsh.dylib.18.1 libclntsh.dylib
下面有相关图片的展示:


更改环境变量
vi ~/.bash_profile
#输入i进入编辑模式
export ORACLE_HOME=/Users/guanguan/oracle/instantclient_18_1
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME
输入完成后按esc
,以及·:wq
保存,输入source ~/.bash_profile
使环境变量生效
测试环境变量是否生效
echo $ORACLE_HOME

成功连接oracle数据库

网友评论