Python&&cx_Oracle

Python版本:python2.7.2
Instantclient版本:Version 10.2.0.4
cx_Oracle版本:cx_Oracle-5.0.1
下载软件及工程目录:/home/oracle/LL/python/software(/workstation)

1. 查看系统版本选择合适版本
uname -a
Linux inc-dba-ccbu-36-18 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:56:44 EST 2007 x86_64 x86_64 x86_64 GNU/Linux

2. 下载安装python2.7.2 – 稳定版
# wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tar.bz2
# tar -jxvf Python-2.7.1.tar.bz2
# cd Python-2.7.1
# ./configure (默认安装在/usr/local/lib/python2.7,–prefix可指定)
# make && make install

3. 安装cx_Oracle之前必须安装oracle客户端—安装目录/opt/
安装或使用cx_Oracle时,需要用到Oracle的链接库,如libclntsh.so.10.1,否则会有各种各样的错误信息。选择安装Oracle Instant Client就可得到这个链接库,避免安装几百兆大小的Oracle Client。
TIPS: 一般Oracle服务器都有客户端,只需指定step4的环境变量
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
需要下载:’instantclient-linux-basic’和’instantclient-sdk-linux’
选择版本Version 10.2.0.4:
▪ basic-10.2.0.4.0-linux-x86_64.zip
▪ oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm

#unzip basic-10.2.0.4.0-linux-x86_64.zip #生成instantclient_10_2文件
#rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
#cd instantclient_10_2
#ln -s libclntsh.so.10.1 libclntsh.so

4. 设置环境变量—oracle&&root用户下
vi $HOME/.bash_profile($HOME=/home/oracle)
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME(/opt/instantclient_10_2)
#source $HOME/.bash_profile #使改动生效

5. 安装cx_Oracle
参考官方文档:
http://cx-oracle.sourceforge.net/BUILD.txt
http://cx-oracle.sourceforge.net/README.txt
若直接安装rpm,导入cx_Oracle模块后不起作用,所以直接使用源码编译安装。
#cd cx_Oracle-5.0.1
#python setup.py build
#python setup.py install

出现问题及解决方式:
1. 系统中含默认Python版本2.3,需要修改PATH等,解决方式:参考:
http://www.cnblogs.com/chenzehe/archive/2010/10/20/1856437.html
2. 使用源码编译安装可能会出现权限不够的问题(oracle用户),解决方式:
切换到root用户下,但是需要export相关oracle配置信息,因为root下环境变量中不包含oracle的相关配置。
3. cx_Oracle版本需要和Oracle instantclient版本相一致,不然可能出错
4. cx_Oracle的rpm包安装成功,但仍旧无法导入cx_Oracle模块,解决方式:
下载源码直接编译安装,成功,虽然有warning。

Leave a Reply

Your email address will not be published. Required fields are marked *