linux下源码安装Oracle 客户端以及python扩展
安装环境:ubuntu 9.10,linux kernel 2.6.31-020631-generic,python2.6
http://dl.iteye.com/upload/attachment/157307/79f503a7-67e3-33d7-9c4c-52f50ba2acf1.jpeg
1.从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html下载 instant Client Package - Basic,Instant Client Package - SQL*Plus,*Instant Client Package - SDK,总共大约50MB,解压后140MB左右
2.将下载的文件解压,解压到一个文件夹,比如oracle_insant,tree类型如下:
- oracle_instant
|-- BASIC_README
|-- SQLPLUS_README
|-- adrci
|-- genezi
|-- glogin.sql
|-- libclntsh.so -> libclntsh.so.11.1
|-- libclntsh.so.11.1
|-- libnnz11.so
|-- libocci.so.11.1
|-- libociei.so
|-- libocijdbc11.so
|-- libsqlplus.so
|-- libsqlplusic.so
|-- ojdbc5.jar
|-- ojdbc6.jar
|-- sdk
| |-- SDK_README
| |-- demo
| | |-- cdemo81.c
| | |-- demo.mk
| | |-- occidemo.sql
| | |-- occidemod.sql
| | |-- occidml.cpp
| | |-- occiobj.cpp
| | `-- occiobj.typ
......
3.从http://cx-oracle.sourceforge.net/下载时候自己数据库的python扩展源码
4.设置 环境变量,修改~/.bashrc
export ORACLE_HOME=/home/zhaolei/programming-tools/database/oracle/oracle_instantexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOMEexport PATH=$ORACLE_HOME:$PATH
在ORACLE_HOME中运行
ln -s libclntsh.so.x.x libclntsh.so
您可以在python中测试配置是否正确
>>> import os>>> os.environ.get('ORACLE_HOME')'/home/zhaolei/programming-tools/database/oracle/oracle_instant'>>> os.environ.get('LD_LIBRARY_PATH')':/home/zhaolei/programming-tools/database/oracle/oracle_instant'>>> os.environ.get('PATH')'/home/zhaolei/programming-tools/java/jdk1.6.0_14/bin:/home/zhaolei/programming-tools/java/jdk1.6.0_14/jre/bin:/home/zhaolei/programming-tools/database/oracle/oracle_instant:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
5 解压源码,进入源码目录cx_Oracle-5.0.2
运行python setup.py build
buidl成功之后,运行 python setup.py install
打开python,输入import cx_Oracle,提示没有libai*.so,在新立得中搜索libai,安装libai-dev
再次测试,一切正常
zhaolei@zhaolei:~$ pythonPython 2.6.4rc1 (r264rc1:75270, Oct 13 2009, 17:02:49) on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import cx_Oracle>>>
[注意]:
一个挺奇怪的问题,如果我运行sudo python setup.py install,就会提示我没有安装oracle,定位失败。跟踪了下setup.py,发现在管理员模式下,os.environ.get('ORACLE_HOME')为None,很奇怪。。
所以,我就直接修改 /usr/local/lib/python2.6/dist-packages/的权限了,让我运行python setup.install可以有权限安装
页:
[1]