文章目录
一、 原理介绍:
没有比官方文档更好的描述了,以下引用一段英文描述。
官方文档地址点击这里
The cx_Oracle module loads Oracle Client libraries which communicate over Oracle Net to an existing database. Oracle Net is not a separate product: it is how the Oracle Client and Oracle Database communicate.
主要意思如下图所示:
Python连接oracle数据需要依赖cx_Oracle,而cx_Oracle需要加载Oracle Client library,Oracle Client library 通过Oracle Net和数据库通讯。因此安装cx_Oracle还需要安装oracle client 才能建立与Oracle数据库的通讯。
二、安装环境
本文介绍的安装环境为:OS X EI Capitan 版本 10.11.3 X64 。
三、准备软件包
依上文原理,安装前需要准备3个软件包,它们分别是oracle_client ,SDK和cx_Oracle。需要注意的是,软件包版本要一致。你可以参考官方文档选择自己的安装包版本。
点击这里,依据官方文档选择自己的安装版本
3.1 oracle_client和SDK
oracle_client版本: instantclient-basic-macos.x64-11.2.0.4.0
SDK版本:instantclient-sdk-macos.x64-11.2.0.4.0
软件包: 下载链接.
3.2 cx_Oracle
版本:cx_Oracle 8.0.0
方法1:打开MacOS终端,输入如下命令,待其自动安装完成。本文测试使用的是方法1。
安装详细说明可参考这里: 网址.
sudo pip3 install cx_oracle –pre
方法2:从网站上自行下载安装。
软件包: 下载链接.
四、安装步骤
4.1 解压oracle_client ,SDK软件包。
4.2 在当前目录下新建一个文件夹“OracleSpace”。
cd ~
mkdir OracleSpace
4.3 将解压过的软件包放入OracleSpace件夹下,并将sdk文件夹放入instantclient_11_2文件夹下。如下图所示:
4.4 进入sdk文件,解压ottclasses.zip 文件。
五、建立软连接
进入instantclient_11_2文件夹下,并执行如下命令。
cd ~
ln -s ~/OracleSpace/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/libclntsh.dylib
六、配置环境变量
6.1 将如下信息添加到.bash_profile文件里,执行命令如下。
vim ~/.bash_profile
.bash_profile文件中添加信息如下:
export ORACLE_HOME=/Users/gdadmin/OracleSpace/instantclient_11_2
export DYLD_LIBRARY_PATH=$ORACLE_HOME:$ORACLE_HOME/sdk/oracle/ott:$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/sdk/include:$LD_LIBRARY_PATH
说明:执行“vim ~/.bash_profile“,是为了打开.bash_profile文件并添加相应环境变量,如下图所示。
6.2 使配置文件生效
执行如下命令,然后重启终端,使配置文件生效。
source ~/.bash_profile