flyingzl 发表于 2013-1-28 19:18:38

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]
查看完整版本: linux下源码安装Oracle 客户端以及python扩展