一、DB2(1)首先下载驱动:(PyDB2)
http://sourceforge.net/projects/pydb2/
(2)安装:
执行那个exe安装程序,如PyDB2-1.1.1-1.win32-py2.5.exe就可以了。
如果是linux,执行
python setup.py build
python setup.py install
(3)测试
import DB2
conn = DB2.connect(dsn='gzdmt', uid='gzcrm', pwd='1jcsxdl')
curs = conn.cursor()
sql='select * from dim_pub_city'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
(city_id,city_name)=(row[0],row[1])
row=curs.fetchone()
print city_id,city_name
curs.close()
注:很奇怪PyDB2没有提供conn.close()的方法,也不知道他是怎么实现连接的关闭的。
(4)其他
linux环境可能会出现python libdb2.so.1 找不到的情况
解决方法:
#vi /etc/ld.conf
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/qt-3.1/lib
/usr/lib/sane
/usr/local/mysql/lib/mysql
/opt/IBM/db2/V8.1/lib/
#ldconfig
二、Oracle
(1)首先下载驱动:(cx_Oracle)
http://www.python.net/crew/atuining/cx_Oracle/
(2)安装:
首先配置oracle_home环境变量
执行那个exe安装程序,如cx_Oracle-4.3.1-win32-10g-py25.exe就可以了,它会copy一个cx_Oracle.pyd到Lib/site-packages目录下。
如果是linux,执行
python setup.py build
python setup.py install
(3)测试
import cx_Oracle
"""conn = cx_Oracle.connect( "aiomni", "aiomni_123","kpi_36")"""
conn=cx_Oracle.connect ('aiomni/aiomni_123@kpi_36')
curs = conn.cursor()
sql='select * from dim_pub_city'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
(city_id,city_name)=(row[0],row[1])
row=curs.fetchone()
print city_id,city_name
curs.close()
conn.close()
(4)在网上有时会说在window平台上可能会遇到问题,我的eclipse+Pydev环境并没有遇到,现列出如下,遇到问题后可能以后会有帮助。
a、import cx_Oracle 时报告找不到OCI.DLL:
到装了Oracle的机器上找一个,然后copy到Libsite-packages目录下就可以了。
b、cx_Oracle.connect 时报告RuntimeError: Unable to acquire Oracle environment handle:
这个比较麻烦,按以下步骤来解决:(可能不需要所有的步骤,我没有确认,不过把以下步骤都执行了,确实问题就解决了)
首先,确认你是在控制台下边来执行这个python脚本的。而不是某些ide,例如:PyDev(它们似乎无法载入os的环境变量)。
其实,在本机安装Oracle(只安客户端工具就可以了)。
最后,添加以下环境变量:(我给出我的,换成你自己的路径就可以了)
ORACLE_HOME=D:OracleOra81
PATH=D:OracleOra81bin;
三、MySQL
(1)首先下载驱动:(MySQLdb)
http://mysql-python.sourceforge.net/
(2)安装:
执行那个exe安装程序,如MySQL-python-1.2.2.win32-py2.5.exe就可以了。
如果是linux,执行
python setup.py build
python setup.py install
(3)测试
import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='asiainfo',db='test')
curs = conn.cursor()
sql='select * from orders'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
(id,order_number)=(row[0],row[1])
row=curs.fetchone()
print id,order_number
curs.close()
conn.close()
四、与Apache整合
(1)下载
Apache:
http://httpd.apache.org/download.cgi
Mod_python_apache:
http://apache.mirror.phpchina.com/httpd/modpython/win/3.3.1/
(2)安装
点击mod_python-3.3.1.win32-py2.5-Apache2.2.exe安装即可,注意最后一步要选择apache的安装目录
(3)编辑apache的httpd.conf文件,最后加入如下几行
LoadModule python_module modules/mod_python.so
AddHandler mod_python .py
PythonHandler mod_python.psp
PythonDebug On
(4)重启动apache,在C:/Apache2.2/htdocs目录下编辑测试文件
test.py
<%
for i in range(5):
j = 2**i
# Loop block begins
%>
<%="%d<sup>%d</sup>=%d"%(2, i, j)%>
<%
# This will close the loop block
%>
(5)访问地址: