gentoo cx_python连oracle

6 views
Skip to first unread message

程磊

unread,
Nov 12, 2008, 9:03:49 PM11/12/08
to pyth...@googlegroups.com
cx_python必须用oracle客户端。oracle有一个instance client,是一个thin
client。相对于普通的客户端小了不少。我最讨厌一个客户端好几百M了。安装这
个,比较小巧方便。到http:
//www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
下载。里面的basic是必须下载的。其他的想sqlplus的可以选装。
下载oracle-instanceclient-basic到一个目录下,比如是instanceclient。然后
配置ORACLE_HOME到这个目录同时要添加这个目录到LD_LIBRARY_PATH。
然后下载cx_ORACLED的源码,python setup.py build或install,就行了。

要注意的有几点:
1.必须保证client所需要的包都有,我下了sqlplus的文件,然后执行,发现少了
libaio,装上,sqlplus正常工作,那么 cx_ORACLE也可以正常工作了。
2.必须保证ORACLE_HOME设置正确和LD_LIBRARY_PATH添加client目录。
3.instanceclient里面有个libclntsh.so.11.1的包,oracle在这个lib后面加了版
本号,但是cx_ORACLE只认libclntsh.so,所有要cp一份在client目录下,否则编译
会报cannot find -lclntsh

测试:
import cx_Oracle
conn = cx_Oracle.connect("***/***@//192.168.10.176:1521/orcl")
cursor=conn.cursor()

ok成功了。

Zoom.Quiet

unread,
Nov 12, 2008, 9:09:41 PM11/12/08
to pyth...@googlegroups.com
2008/11/13 程磊 <lei.a...@gmail.com>:
好多有钱银哪,都敢用 Oracle ,,,
http://wiki.woodpecker.org.cn/moin/MiscItems/2008-11-13
收录了,,,

--
http://zoomquiet.org'''
过程改进乃是催生可促生靠谱的人的组织!
PE keeps evolving organizations which promoting people be good!'''
[HR]金山软件常年招聘大量Py/C++人才!
https://groups.google.com/group/python-cn/web/ot-py-c
简历直投俺就好;-)

samson

unread,
Nov 12, 2008, 9:15:02 PM11/12/08
to python-cn`CPyUG`华蟒用户组
敢情Basic也要30M啊,胖。

程磊

unread,
Nov 12, 2008, 9:16:39 PM11/12/08
to pyth...@googlegroups.com
samson 写道:
> 敢情Basic也要30M啊,胖。
> >
>

和java的ojdbc.jar当然没有办法比了。但是比几百M的要好些。

刚才忘了写一点进去,如果要编译cx_ORACLED的话,instantclient-sdk包不能
少,否则找不到头文件。

est

unread,
Nov 13, 2008, 5:55:51 AM11/13/08
to python-cn`CPyUG`华蟒用户组
VB就1MB吧。

Python25.dll + Tkinter 也1.9MB。呵呵。

On Nov 13, 10:15 am, samson <yan_xiao_s...@hotmail.com> wrote:
> 敢情Basic也要30M啊,胖。

est

unread,
Nov 13, 2008, 5:56:17 AM11/13/08
to python-cn`CPyUG`华蟒用户组
LD_LIBRARY_PATH这个技巧太重要了。感谢楼主 :-)

On Nov 13, 10:03 am, 程磊 <lei.alf1...@gmail.com> wrote:
> cx_python必须用oracle客户端。oracle有一个instance client,是一个thin
> client。相对于普通的客户端小了不少。我最讨厌一个客户端好几百M了。安装这
> 个,比较小巧方便。到http:
> //www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linu...

est

unread,
Nov 13, 2008, 6:07:55 AM11/13/08
to python-cn`CPyUG`华蟒用户组
楼主把cx_Oracle写成cx_python了。hoho~~~

On Nov 13, 10:03 am, 程磊 <lei.alf1...@gmail.com> wrote:
> cx_python必须用oracle客户端。oracle有一个instance client,是一个thin
> client。相对于普通的客户端小了不少。我最讨厌一个客户端好几百M了。安装这
> 个,比较小巧方便。到http:
> //www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linu...

xuzi...@gmail.com

unread,
Nov 14, 2008, 10:17:35 AM11/14/08
to pyth...@googlegroups.com
在2008-11-13的邮件[[CPyUG:71218] gentoo cx_python连oracle]中写到:
> 2.必须保证ORACLE_HOME设置正确和LD_LIBRARY_PATH添加client目录。
按照我的经验,是不必设置 ORACLE_HOME 的,不过要注意的一点是,要:
export LD_LIBRARY_PATH=oracle instant clinet:.
而不要
export LD_LIBRARY_PATH=.:oracle instant clinet
否则sqlplus会报错,具体原因不明

> 3.instanceclient里面有个libclntsh.so.11.1的包,oracle在这个lib后面加了版
> 本号,但是cx_ORACLE只认libclntsh.so,所有要cp一份在client目录下,否则编译
> 会报cannot find -lclntsh
这个我完全搞不懂为啥oracle 这么奇怪,他 sdk 的 demo 的 makefile 也能发现:
ln xxx.so.11.1 xxxx.so
rm -rf xxxx.so

--
唉,啥都不行,只能回去扣腚

lei cheng

unread,
Nov 16, 2008, 2:34:49 AM11/16/08
to pyth...@googlegroups.com
ORACLE_HOME是在wx_Oracle编译过程中需要的,不是oracle_instance需要的。

Reply all
Reply to author
Forward
0 new messages