一、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)訪問地址:
http://localhost/test.py