1. 苏葳的备忘录首页
  2. 开发工具

Python访问Oracle数据库的方法

python cx_oracle oracle终于有时间来安装Python访问Oracle的模块。在网上搜索,使用最多的大约是cx_Oracle这个模块。 下载链接http://cx-oracle.sourceforge.net。其实Python中能操作Oracle的并非只有这个模块,比如以前操作Sybase所用的那个模块,其实可以支持多种数据库,并且也是满足Python的db api规范的,但目前显然还是cx_Oracle使用最广,网上Python访问Oracle用的大多是这个包。

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

发表评论

邮箱地址不会被公开。 必填项已用*标注