六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

linux下源码安装Oracle 客户端以及python扩展

[复制链接]

升级  96%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
48
 楼主| 发表于 2013-1-28 19:18:38 | 显示全部楼层 |阅读模式
安装环境:

ubuntu 9.10,linux kernel 2.6.31-020631-generic,python2.6




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) [GCC 4.4.1] 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可以有权限安装
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表