新聞中心
在應(yīng)用Python編程語(yǔ)言進(jìn)行實(shí)際編程時(shí),我們通常會(huì)使用一些比較重要的庫(kù)賴滿足我們的開(kāi)發(fā)需求。在這里我們就先來(lái)一起了解一下有關(guān)第三方Python庫(kù)的基本功能特點(diǎn),以方便大家對(duì)此有一個(gè)充分的了解。#t#

第三方Python庫(kù)之wxPython
如果你之前是 windows 程序員,用 MFC 或者 WIN32API 開(kāi)發(fā)界面程序,那進(jìn)入 Python 國(guó)度***的 GUI 選擇應(yīng)該是 wxPython。它是 wxWidgets 的 Python Bind,與 wxWidgets 的開(kāi)發(fā)***同步,最為重要的一點(diǎn)是它的消息機(jī)制與 MFC 頗為相似,以前在 MFC 的經(jīng)驗(yàn)完全可以稍作變化就套用在 wxPython 上面。在 WIN32 開(kāi)發(fā)中,最討厭的一環(huán)肯定有 WM_SIZE 消息的處,在主窗口大小變化的時(shí)候,保持控件布局在 WIN32 是一件麻煩事。這件事情 wx 解決得非常***,它的sizer 概念可以讓我輕松地在不同窗口尺寸的情況下保持***的控件布局。另外如果你已經(jīng)討厭了 MFC 的 doc-view 模型,wx 也可以給你一個(gè)新的選擇;如果你非常喜歡 doc-view 模型,放心,在 wx 中仍然可以輕松實(shí)現(xiàn),以前的思想依然可以在這里發(fā)揮余熱。
wxPython 有兩個(gè)封裝,一個(gè) PythonCard,另一個(gè)是 dabo。前者是 wxPython 的有限封裝,不支持 wxPython 的全部特性,它的目標(biāo)是讓 wxPython 更加 Pythonic。后者比 PythonCard 要龐大不少,確切來(lái)說(shuō),它應(yīng)該是一個(gè)三層架構(gòu)的 C/S 模式的開(kāi)發(fā)框架。如果你想開(kāi)發(fā)基于數(shù)據(jù)庫(kù)的應(yīng)用(如 MIS、ERP 等)用 dabo 是一個(gè)不錯(cuò)的選擇;另外,如果你之前習(xí)慣了 VB、VFP、Delphi 等 RAD 開(kāi)發(fā)環(huán)境,dabo 并不比這些昂貴的工具差多少哦!
第三方Python庫(kù)之py2exe
按照邪惡的 windows 思維,編寫(xiě)的應(yīng)用如果不編譯出一個(gè) .exe 文件恐怕是算不得“軟件”的,py2exe 作用正是把你的 .py 腳本變成 .exe 文件,通常它會(huì)把腳本打包到一個(gè) .zip 文件中去,但也你可以通過(guò)修改 setup.py 腳本把所有的腳本、依賴的 dll 等全部打包到一個(gè) exe 中去,看起來(lái)跟 VC、VB 編譯出來(lái)的程序沒(méi)有什么兩樣!
如果你的客戶需要在 windows 下使用你的應(yīng)用程序,py2exe 是你不可或缺的工具。我就是用它打包由 wxPython 寫(xiě)的小工具給公司里的游戲策劃用的。
第三方Python庫(kù)之psyco
腳本的執(zhí)行效率多少有點(diǎn)差強(qiáng)人意,雖然優(yōu)化起來(lái)并不是難事,但如果有簡(jiǎn)單的方法,近乎不用修改源代碼,那當(dāng)然值得去關(guān)注一下。psyco 的神奇在于它只需要在代碼的入口處調(diào)用短短兩行代碼,性能就能提升 40% 或更多,真可謂是立竿見(jiàn)影!
如果你的客戶覺(jué)得你的程序有點(diǎn)慢,敬請(qǐng)不要急著去優(yōu)化代碼,psyco 或許能讓他立即改變看法。psyco 堪稱 Python 的 jit,有許多潛力可以挖掘,如果剩下來(lái)給你優(yōu)化性能的時(shí)間已經(jīng)不多,請(qǐng)馬上去閱讀它的手冊(cè),有許多招兒輕松優(yōu)化性能。
第三方Python庫(kù)之PIL
PIL 是 Python 的圖像處理庫(kù),我的看法是強(qiáng)到?jīng)]得說(shuō),簡(jiǎn)單到?jīng)]得說(shuō)。它可以打開(kāi)數(shù)十種圖像格式,常見(jiàn)的 jpg/png/bmp 等當(dāng)然不在話下;此外還提供許多圖像處理函數(shù),如圖像增強(qiáng)、濾波算法等,詳情可以參考我以前的一篇文章《用Python 做圖像處理》(http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx)和《計(jì)算圖像相似度》(http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx)。
第三方Python庫(kù)之MySQLdb
這是 Python 對(duì)開(kāi)源數(shù)據(jù)庫(kù) Mysql 的支持,官網(wǎng)在http://sourceforge.net/projects/mysql-python。支持 Mysql 3.23-5.1 全系列版本,Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0 的實(shí)現(xiàn),現(xiàn)在已經(jīng)很成熟了。***的版本是 1.2.2 。
如果從事服務(wù)器開(kāi)發(fā),那少不得跟數(shù)據(jù)庫(kù)連接池打交道,這時(shí)你可以使用 DBUtils 或 jonpy 兩個(gè)開(kāi)源程序庫(kù)。其中 DBUtils 是一套數(shù)據(jù)庫(kù)連接池庫(kù),而 jonpy 則包括了 CGI 以及數(shù)據(jù)庫(kù)連接池等多個(gè)功能,請(qǐng)?jiān)陂喿x手冊(cè)后選擇合適的自己庫(kù)。
第三方Python庫(kù)之pyprocessing
Python 解釋器里的 GIL(全局解釋器鎖)使得 Python 在多核時(shí)代有點(diǎn)尷尬——這個(gè)支持原生線程的腳本語(yǔ)言竟然不能通過(guò)多線程利用多個(gè) CPU 內(nèi)核同時(shí)并發(fā)計(jì)算。pyprocessing 沒(méi)有嘗試去除 GIL,而是劍走偏鋒,嘗試從多進(jìn)程的方式來(lái)幫助 Python 走出困境。結(jié)果就是使用 pyprocessing 創(chuàng)建進(jìn)程和進(jìn)程間通信不僅像使用內(nèi)置的 threading 模塊那么簡(jiǎn)單,甚至還更加簡(jiǎn)單。pyprocessing 不僅可以通過(guò)本機(jī) socket 和管道進(jìn)行通信,而且封裝得極為***,它的 Queue 實(shí)現(xiàn)用起來(lái)跟內(nèi)置的 Queue 沒(méi)啥兩樣,但它是一個(gè)進(jìn)程間共享的隊(duì)列哦!
pyprocessing 在 py2.6 和 py3.0 中已經(jīng)作為內(nèi)置模塊了,也算是開(kāi)發(fā)社區(qū)對(duì) pyprocessing 項(xiàng)目的肯定吧。如果你用 Python 開(kāi)發(fā)服務(wù)器應(yīng)用,特別是網(wǎng)絡(luò)游戲這樣的應(yīng)用,pyprocessing 怎么可以不去關(guān)注一下!
以上就是我們?yōu)榇蠹以敿?xì)介紹的有關(guān)第三方Python庫(kù)的一些內(nèi)容。
網(wǎng)站名稱:第三方Python庫(kù)基本概念簡(jiǎn)述
當(dāng)前路徑:http://fisionsoft.com.cn/article/ccsesop.html


咨詢
建站咨詢
