cx_Oracle模块支持Oracle 10.2, 11.1 and 11.2,在win及cen os下有二进制安装包。本人环境为rhel 5.5,python 2.7.3,oracle 11.2.0.3.0,所以还是自己编译一下更安全。
下载最新源码包,当前是7月份的5.1.2版本,将tar.gz文件上传至用户目录下,解压缩解包。进去查看build.txt文件,发现这个包的编译安装还是非常简单的。主要是要求编译用户要设置ORACLE_HOME和LD_LIBRARY_PATH两个环境变量,对于oracle开发用户,这两个变量显然是必备的。
直接执行:
python setup.py build
OK编译成功,生成了cx_Oracle.so
然后安装
python setup.py install
于是报没有权限错误了,因为需将cx_Oracle.so写入系统目录下。
只得换root用户来编译安装。改动root用户的.bash_profile太麻烦,在root用户下直接执行export ORACLE_HOME=xxx和export LDXXXXX两命令加入环境变量,然后进行源码目录下执行build和install,OK都成功了。
在root用户下在python解释环境中执行:
import cx_Oracle
OK没有报错,证实成功了。
换至自己开发用户目录下,在Pyhon中执行 import cx_Oracle,oh no ,报错,提示找不到模块。
自己还不是太明白python中第三方模块的路径查找原理,不管,先切回root用户,搜索cx_Oracle.so文件
发现处于/usr/local/lib/python2.7/site-packages下,查看此.so文件权限,为660,这样第三方用户如何执行呢?chmod 777该 文件,然后回到开发用户下,再执行import cx_Oracle,OK成功了。
再测试一下连接:
db=cx_Oracle.connect('user,'passwd','192.168.3.55:1521/DBTEST')
成功
print db.version
显示:
11.2.0.3.0
OK证实连接成功了。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/410.html