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