环境
CentOS release 6.3 (Final)
Python 2.6.6
内核版本:2.6.32-504.30.3.el6.x86_64 #1 SMP Wed Jul 15 10:13:09 UTC 2015x86_64 x86_64 x86_64 GNU/Linux
Oracle版本:Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64b
步骤
需要如下几个包
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
将上述几个文件放在/data/soft/Oracle下
cd /data/soft/Oracle
解压
unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
解压完成后,自动在当前目录下生成instantclient_11_2目录
cd instantclient_11_2/
mkdir -p network/admin
在network/admin目录下新建文件tnsnames.ora,内容为Oracle TNS信息
配置用户环境
vim /etc/profile
#oracle 11g installclient env
export ORACLE_HOME=/data/soft/Oracle/instantclient_11_2
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
Source /etc/profile,使配置生效
可以使用sqlplus 测试连接是否OK
在python环境下测试数据库连接
总结
python不需要升级到2.7,升级之后cx_Oracle.so这个文件会安装在/usr/lib/python2.6/site-packages/下,而新的python的site-packages目录不是这个,会碰到问题:ImportError:No module named cx_Oracle, 将cx_Oracle.so 拷贝到新版本python 的site-packages的目录即可解决问题,cp /usr/lib/python2.6/site-packages/cx_Oracle.so/usr/local/lib/python2.7/site-packages