經常使用的幾個第三方 Python 庫

Python  語言之因此可以如此流行,除了自己內置許多程序庫來保障快速開發以外,目不睱接的第三方庫也是一大主因。結合我目前的工做(網遊開發),我經常使用的幾個第三方庫以下:

wxPython

若是你以前是  windows  程序員,用  MFC  或者  WIN32API  開發界面程序,那進入  Python  國度最好的  GUI  選擇應該是  wxPython 。它是  wxWidgets   Python Bind ,與  wxWidgets  的開發完美同步,最爲重要的一點是它的消息機制與  MFC  頗爲類似,之前在  MFC  的經驗徹底能夠稍做變化就套用在  wxPython  上面。在  WIN32  開發中,最討厭的一環確定有  WM_SIZE  消息的處,在主窗口大小變化的時候,保持控件佈局在  WIN32  是一件麻煩事。這件事情  wx  解決得很是完美,它的 sizer  概念可讓我輕鬆地在不一樣窗口尺寸的狀況下保持完美的控件佈局。另外若是你已經討厭了  MFC   doc-view  模型, wx  也能夠給你一個新的選擇;若是你很是喜歡  doc-view  模型,放心,在  wx  中仍然能夠輕鬆實現,之前的思想依然能夠在這裏發揮餘熱。
wxPython  有兩個封裝,一個  PythonCard ,另外一個是  dabo 。前者是  wxPython  的有限封裝,不支持  wxPython  的所有特性,它的目標是讓  wxPython  更加  Pythonic 。後者比  PythonCard  要龐大很多,確切來講,它應該是一個三層架構的  C/S  模式的開發框架。若是你想開發基於數據庫的應用(如  MIS ERP  等)用  dabo  是一個不錯的選擇;另外,若是你以前習慣了  VB VFP Delphi   RAD  開發環境, dabo  並不比這些昂貴的工具差多少哦!

py2exe

按照邪惡的  windows  思惟,編寫的應用若是不編譯出一個  .exe  文件恐怕是算不得「軟件」的, py2exe  做用正是把你的  .py  腳本變成  .exe  文件,一般它會把腳本打包到一個  .zip  文件中去,但也你能夠經過修改  setup.py  腳本把全部的腳本、依賴的  dll  等所有打包到一個  exe  中去,看起來跟  VC VB  編譯出來的程序沒有什麼兩樣!
若是你的客戶須要在  windows  下使用你的應用程序, py2exe  是你不可或缺的工具。我就是用它打包由 wxPython 寫的小工具給公司裏的遊戲策劃用的。

psyco

腳本的執行效率多少有點差強人意,雖然優化起來並非難事,但若是有簡單的方法,近乎不用修改源代碼,那固然值得去關注一下。 psyco  的神奇在於它只須要在代碼的入口處調用短短兩行代碼,性能就能提高  40%  或更多,真可謂是立竿見影!
若是你的客戶以爲你的程序有點慢,敬請不要急着去優化代碼, psyco  或許能讓他當即改變見解。 psyco  堪稱  Python   jit ,有許多潛力能夠挖掘,若是剩下來給你優化性能的時間已經很少,請立刻去閱讀它的手冊,有許多招兒輕鬆優化性能。

PIL

PIL   Python  的圖像處理庫,個人見解是強到沒得說,簡單到沒得說。它能夠打開數十種圖像格式,常見的  jpg/png/bmp  等固然不在話下;此外還提供許多圖像處理函數,如圖像加強、濾波算法等,詳情能夠參考我之前的一篇文章《用 Python  作圖像處理》( http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx )和《計算圖像類似度》( http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx )。

MySQLdb

這是  Python  對開源數據庫  Mysql  的支持,官網在 http://sourceforge.net/projects/mysql-python 。支持  Mysql 3.23-5.1  全系列版本, Python  版本的要求是  2.3-2.5 MySQLdb   Python DB API-2.0  的實現,如今已經很成熟了。最新的版本是   1.2.2  
若是從事服務器開發,那少不得跟數據庫鏈接池打交道,這時你可使用  DBUtils    jonpy  兩個開源程序庫。其中  DBUtils  是一套數據庫鏈接池庫,而  jonpy  則包括了  CGI  以及數據庫鏈接池等多個功能,請在閱讀手冊後選擇合適的本身庫。

pyprocessing

Python  解釋器裏的  GIL (全局解釋器鎖)使得  Python  在多核時代有點尷尬——這個支持原生線程的腳本語言居然不能經過多線程利用多個  CPU  內核同時併發計算。 pyprocessing  沒有嘗試去除  GIL ,而是劍走偏鋒,嘗試從多進程的方式來幫助  Python  走出困境。結果就是使用  pyprocessing  建立進程和進程間通訊不只像使用內置的  threading  模塊那麼簡單,甚至還更加簡單。 pyprocessing  不只能夠經過本機  socket  和管道進行通訊,並且封裝得極爲完美,它的  Queue  實現用起來跟內置的  Queue  沒啥兩樣,但它是一個進程間共享的隊列哦!
pyprocessing    py2.6    py3.0  中已經做爲內置模塊了,也算是開發社區對  pyprocessing  項目的確定吧。若是你用  Python  開發服務器應用,特別是網絡遊戲這樣的應用, pyprocessing  怎麼能夠不去關注一下!
相關文章
相關標籤/搜索