1、下载 oracle client instant 和 sdk, 全部解压到 /opt/instantclient_11_2/
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
2、设置环境变量
export ORACLE_HOME=/opt/instantclient_11_2/
#添加头文件的搜索路径
export C_INCLUDE_PATH=/opt/instantclient_11_2/sdk/include/
#添加库搜索路径
export LD_LIBRARY_PATH=/opt/instantclient_11_2/
#设置符号链接,以便安装时能找到
ln -s /opt/instantclient_11_2/libclntsh.so.11.1 /opt/instantclient_11_2/libclntsh.so
3、安装 cx_Oracel
pip install cx_Oracle
PS:
如果另开一个 terminal,在 python 中执行 import cx_Oracle 会提示未找到共享库。
应该是之前设置的环境变量失效了,故可修改用户的配置文件:~/.bashrc
在里面加一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/instantclient_11_2/
总结:
使用 pip 安装 cx_Oracle 的过程中要 检测 instantclient,编译源码,进行安装。
其中环境变量 ORACLE_HOME 用于表示 instantclient 的安装位置,
C_INCLUDE_PATH 供 gcc 查找 头文件的路径,
LD_LIBRARY_PATH 用于 cx_Oracle的链接阶段和执行阶段。