http://chen-gengjia.iteye.com/admin/blogs/new
adodb:我們領導推薦的資料庫連接組件
bsddb3:BerkeleyDB的串連組件
Cheetah-1.0:我比較喜歡這個版本的cheetah
cherrypy:一個WEB framework
ctypes:用來調用動態連結程式庫
DBUtils:資料庫連接池
django:一個WEB framework
docutils:用來寫文檔的
dpkt:資料包的解包和組包
MySQLdb:串連MySQL資料庫的
py2exe:用來產生windows可執行檔
Pylons:我們領導推薦的web framework
pysqlite2:SQLite的串連組件
pythonwin:Python的Windows擴充
setuptools:無奈,PEAK的一套python包管理機制
sqlalchemy:資料庫連接池
SQLObject:資料庫連接池
twisted:巨無霸的網路編程架構
wxPython-2.6:因為需要保持與linux相同的版本才沒用最新的,GUI編程架構
pypcap:抓包的
python-dnet:控制網路安全的其他裝置
pyevent:Python的事件支援
pydot:畫圖的,graphiz
sendpkt:Python發包
simplejson:JSON的支援
DPKT:raw-scoket網路編程
Cx-oracle:串連oracle的好東東
Mechanize:爬蟲串連網站常用
PIL:影像處理工具包
reportlab for PDF 檔案。
PyQt4 for GUI介面
feedparser: rss解析
chardet:編碼檢測
scons: 項目構建工具,寫好了模板用起來還是很方便的
scapy: 網路包構建分析架構,可程式化的wireshark,有興趣的google “Silver Needle in the Skype”
pefile: windows pe檔案解析器
winpdb: 自己的程式或者用別的庫不太明白的時候就靠它了
pywmi: 省了好多折騰功夫
pylint: 培養良好的編碼習慣
下面是準備用的,不做評論:
pygccxml
pyparsing
pymacs
idapython
paimei
pysvn
pyLucene
wikidpad
1.Karrigell http://karrigell.sourceforge.net/
1.The Standard Python Libary http://effbot.org/librarybook/
1.Python操作PDF的Libary http://reportlab.org/
1.Python cURL Libary http://pycurl.sourceforge.net/
1.urlgrabber http://linux.duke.edu/projects/urlgrabber/
1.MySQL-Python http://mysql-python.sourceforge.net/
1.pyScripter
2.Python for Delphi http://mmm-experts.com/Products.aspx
1.Python Cookbook http://aspn.activestate.com/ASPN/Python/Cookbook/
1.pygame http://www.pygame.org/news.html
1.pymedia http://www.pymedia.org
1.pydbf http://dbfpy.sourceforge.net/
1.Pexpect http://pexpect.sourceforge.net/
1.dabo
desktop application frameworks http://dabodev.com/
1.pySerial
http://pyserial.sourceforge.net/
http://wiki.woodpecker.org.cn/moin/PySerial
1.python’s doc
http://wiki.woodpecker.org.cn/moin/PythonZhDoc
1.The Visual Module of VPython(3D)
http://vpython.org/index.html
1.PyLucene
http://pylucene.osafoundation.org/
1.DBUils
http://www.webwareforpython.org/DBUtils
1.http://happyiww.popo.blog.163.com/blog/
a good people’s blog
1.AppleScript,OSAComponents,HtmlCalendar
http://freespace.virgin.net/hamish.sanderson/index.html
1.Pypcap
http://code.google.com/p/pypcap/
http://monkey.org/~dugsong/dpkt/
http://www.winpcap.org/install/default.htm
python-memcached client module for memcached
Kodos,python的Regex調試工具,
PLY (Python Lex-Yacc)
http://www.dabeaz.com/ply/
正在用它寫彙編器.
wxPython - GUI Framework
omniORBpy - CORBA Library
ZODB3 - an OODB implement
ReportLab - PDF generating solution
numpy+scipy+matplotlib
hachoir 各種多媒體中繼資料解析
python-orge 示範用
資料庫的:
sqlalchemy
sqlobject
MySQL-python (easy_install的時候就是這個名字)
routes
beaker
兩個模板引擎:
genshi
mako
paster
另外還有知道的
PyCrypto 加密的
paramiko 這個可以幫你寫sftp,比twisted裡面的那個好用一些
twisted 寫伺服器玩的
PyOpenGL
PyGame
Psyco 傳說可以加速你的python程式
PIL (Python Image Library) 處理圖片
PyObjC 這個是蘋果上用的,寫Cocoa程式
Python desktop client GUI application:
wxPython
PyOpenGL
PyXML
ZSI
davlib.py
ChartDirector
一個支援多種語言的圖表庫,無論是效果還是效率,都比jfreechart高。
############### 自己補充一下 ##################
遊戲3D pyglet、pythonOgre、 blender(c),k-3d(c++),vpython,panda3d
===============================================
python包包收集 catswhocode.com 的 jbj
Graphical interface wxPython http://wxpython.org
Graphical interface pyGtk http://www.pygtk.org
Graphical interface pyQT http://www.riverbankcomputing.co.uk/pyqt/
Graphical interface Pmw http://pmw.sourceforge.net/
Graphical interface Tkinter 3000 http://effbot.org/zone/wck.htm
Graphical interface Tix http://tix.sourceforge.net/
Database MySQLdb http://sourceforge.net/projects/mysql-python
Database PyGreSQL http://www.pygresql.org/
Database Gadfly http://gadfly.sourceforge.net/
Database SQLAlchemy http://www.sqlalchemy.org/
Database psycopg http://www.initd.org/pub/software/psycopg/
Database kinterbasdb http://kinterbasdb.sourceforge.net/
Database cx_Oracle http://www.cxtools.net/default.aspx?nav=downloads
Database pySQLite http://initd.org/tracker/pysqlite
MSN Messenger msnlib http://auriga.wearlab.de/~alb/msnlib/
MSN Messenger pymsn http://telepathy.freedesktop.org/wiki/Pymsn
MSN Messenger msnp http://msnp.sourceforge.net/
Network Twisted http://twistedmatrix.com/
Images PIL http://www.pythonware.com/products/pil/
Images gdmodule http://newcenturycomputers.net/projects/gdmodule.html
Images VideoCapture http://videocapture.sourceforge.net/
Sciences and Maths scipy http://www.scipy.org/
Sciences and Maths NumPy http://numpy.scipy.org//
Sciences and Maths numarray http://www.stsci.edu/resources/software_hardware/numarray
Sciences and Maths matplotlib http://matplotlib.sourceforge.net/
Games Pygame http://www.pygame.org/news.html
Games Pyglet http://www.pyglet.org/
Games PySoy http://www.pysoy.org/
Games pyOpenGL http://pyopengl.sourceforge.net/
Jabber jabberpy http://jabberpy.sourceforge.net/
Web scrape http://zesty.ca/python/scrape.html
Web Beautiful Soup http://crummy.com/software/BeautifulSoup
Web pythonweb http://www.pythonweb.org/
Web mechanize http://wwwsearch.sourceforge.net/mechanize/
Localisation geoname.py http://www.zindep.com/blog-zindep/Geoname-python/
Serial port pySerial http://pyserial.sourceforge.net/
Serial port USPP http://ibarona.googlepages.com/uspp
Parallel Port pyParallel http://pyserial.sourceforge.net/pyparallel.html
USB Port pyUSB http://bleyer.org/pyusb/
Windows ctypes http://starship.python.net/crew/theller/ctypes/
Windows pywin32 http://sourceforge.net/projects/pywin32/
Windows pywinauto http://www.openqa.org/pywinauto/
Windows pyrtf http://pyrtf.sourceforge.net/
Windows wmi http://timgolden.me.uk/python/wmi.html
PDA/GSM/Mobiles pymo http://www.awaretek.com/pymo.html
PDA/GSM/Mobiles pyS60 http://sourceforge.net/projects/pys60
Sound pySoundic http://pysonic.sourceforge.net/
Sound pyMedia http://pymedia.org/
Sound FMOD http://www.fmod.org/
Sound pyMIDI http://www.cs.unc.edu/Research/assist/developer.shtml
GMail libgmail http://libgmail.sourceforge.net/
Google pyGoogle http://pygoogle.sourceforge.net/
Expect pyExpect http://pexpect.sourceforge.net/
WordNet pyWordNet http://osteele.com/projects/pywordnet/
Command line cmd http://blog.doughellmann.com/2008/05/pymotw-cmd.html
Compiler backend llvm-py http://mdevan.nfshost.com/llvm-py/
3D VPython http://vpython.org
encryption
pyDes DES加密解密模組http://twhiteman.netfirms.com/des.html
parsing pyparsing 類似lex/yacc但更簡單的詞法/文法分析器pyparsing.wikispaces.com
Tkinter———— Python預設的圖形介面介面。
Tkinter是一個和Tk介面的Python模組,Tkinter庫提供了對 Tk API的介面,它屬於Tcl/Tk的GUI工具組。Tcl/Tk是由John Ousterhout發展的書寫和圖形裝置。Tcl(工具命令語言)是個宏語言,用於簡化shell下複雜程式的開發,Tk工具包是和Tcl一起開發的, 目的是為了簡化使用者介面的設計過程。Tk工具包由許多不同的小組件,如一個按鈕、一個捲軸等。通過Tk提供的這些小組件,我們就可快速地進行GUI開 發。Perl、Scheme等語言也利用Tk庫進行GUI開發。Tkinter是跨平台,在各種平台下都能使用。
Python Imaging Library(PIL)————python提供強大的圖形處理的能力,並提供廣泛的圖形檔案格式支援,該庫能進行圖形格式的轉換、列印和顯示。還能進 行一些圖形效果的處理,形的放大、縮小和旋轉等。是Python使用者進行圖象處理的強有力工具。
Pmw(Python megawidgets)Python超級GUI組件集————一個在python中利用Tkinter模組構建的進階GUI組件,每個Pmw都合并了一個或多個Tkinter組件,以實現更有用和更複雜的功能。
PyXML———— 用Python解析和處理XML文檔的工具包,包中的4DOM是完全相容於W3C DOM規範的。它包含以下內容:
xmlproc: 一個符合規範的XML解析器。
Expat: 一個快速的,非驗證的XML解析器。 還有其他
和他同層級的還有 PyHtml PySGML
PyGame———— 用於多媒體開發和遊戲軟體開發的模組。
PyOpenGL———— 模組封裝了“OpenGLAPI”,通過該模組python程式員可在程式中整合2D和3D的圖形。
NumPy、NumArray和SAGE———— NumArray是Python的一個擴充庫,主要用於處理任意維數的固定類型數組,簡單說就是一個矩陣庫。它的低層代碼使用C來編寫,所以速度的優勢很 明顯。NumPy是Numarray的後繼者,用來代替NumArray。SAGE是基於NumPy和其他幾個工具所整合成的數學軟體包,目標是取代 Magma, Maple, Mathematica和Matlab 這類工具。
MySQLdb模組———— 用於串連MySQL資料庫。還有用於zope的ZMySQLDA模組,通過它就可在zope中串連mysql資料庫。
PyGTK ———— 用於python GUI程式開發的GTK+庫。GTK就是用來實現GIMP和Gnome的那個庫。有了它,你完全可以自信的嘗試自己製造Photoshop
PyQt ———— 用於python的Qt開發庫。QT就是實現了KDE環境的那個庫,由一系列的模組組成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300個類和超過5750個的函數和方法。PyQt還支援一個叫qtext的模組,它包含一個QScintilla庫。該庫是 Scintillar編輯器類的Qt介面。
PyMedia ———— 用於多媒體操作的python模組。它提供了豐富而簡單的介面用於多媒體處理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Psyco ———— 一個Python代碼加速度器,可使Python代碼的執行速度提高到與編譯語言一樣的水平。
Python-ldap ———— 提供一組物件導向的API,可方便地在python中訪問ldap目錄服務,它基於OpenLDAP2.x。
smtplib模組 ———— 寄送電子郵件。
ftplib模組 ———— 定義了FTP類和一些方法,用以進行用戶端的ftp編程。我們可用python編寫一個自己的ftp用戶端程式,用於下載檔案或鏡像網站。如果想瞭解ftp協議的詳細內容,請參考RFC959。
xmpppy模組 ———— Jabber伺服器採用開發的XMPP協議,Google Talk也是採用XMPP協議的IM系統。在Python中有一個xmpppy模組支援該協議。也就是說,我們可以通過該模組與Jabber伺服器通訊,是不是很Cool。
原文地址:http://xinsync.xju.edu.cn/index.php/archives/4401
============================================
我常用的幾個第三方 Python 庫收藏 作者:賴勇浩(http://blog.csdn.net/lanphaday)
xPython
如果你之前是 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 怎麼可以不去關注一下!
=============================================================================
Python模組安裝
1. 單檔案模組
直接把檔案拷貝到$python_dir/lib
2. 多檔案模組,帶setup.py
python setup.py install
3. egg檔案
1) 下載ez_setup.py,運行python ez_setup
2) easy_install *.egg
雖然Python的模組可以拷貝安裝,但是一般情況下推薦製作一個安裝包,即寫一個setup.py檔案來安裝。
setup.py檔案的使用:
% python setup.py build #編譯
% python setup.py install #安裝
% python setup.py sdist #製作分發包
% python setup.py bdist_wininst #製作windows下的分發包
% python setup.py bdist_rpm
setup.py檔案的編寫
setup.py中主要執行一個 setup函數,該函數中大部分是描述性東西,最主要的是packages參數,列出所有的package,可以用內建的find_packages來動態擷取package。所以setup.py檔案的編寫實際是很簡單的。
簡單的例子:
setup.py檔案
from setuptools import setup, find_packages
setup(
name = " mytest " ,
version = " 0.10 " ,
description = " My test module " ,
author = " Robin Hood " ,
url = " http://www.csdn.net " ,
license = " LGPL " ,
packages = find_packages(),
scripts = [ " scripts/test.py " ],
)
mytest.py
import sys
def get():
return sys.path
scripts/test.py
import os
print os.environ.keys()
setup中的scripts表示將該檔案放到 Python的Scripts目錄下,可以直接用。
OK,簡單的安裝成功,可以運行所列舉的命令產生安裝包,或者安裝該python包。
本機測試成功(win32-python25)!
==============================================================
setuptools它可以自動的安裝模組,只需要你提供給它一個模組名字就可以,並且自動幫你解決模組的依賴問題。一般情況下用setuptools給安裝的模組會自動放到一個尾碼是.egg的目錄裡。
首先,安裝setuptools這個東西,先去下載一個指令碼: http://peak.telecommunity.com/dist/ez_setup.py 下載完後直接執行它就會幫你把setuptools給裝好。
之後,安裝模組的使用方法就是使用一個叫easy_install的命令,在Windows裡,這個命令在python安裝目錄下的scripts裡面,所以需要把scripts加到環境變數的PATH裡,這樣用起來就更方便,linux下不需要注意這個問題。
安裝軟體只需要執行:easy_install 模組名
===================================================
pyinstaller 來建立linux下的python獨立執行檔案
以下內容假定已安裝好Python 2.4/2.5
一、下載並編譯pyinstaller(只需做一次,以後可直接做第二步)
1.下載pyinstaller,現在的版本是1.3
(1)wget http://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz
2.解包進入源碼目錄
(1)tar zxv pyinstaller_1.3.tar.gz
(2)cd pyinstaller-1.3/source/linux
3.編譯原始碼
(1)python Make.py 產生python的 .pyc檔案
如無錯誤,則出現如下提示(只有一行):
Now run "make" to build the targets: http://www.cnblogs.com/support/loader/run http://www.cnblogs.com/support/loader/run_d
(2)make 串連產生linux的 .o 檔案
4.產生編譯設定檔
(1)python Configure.py 產生config.dat設定檔
二、編譯獨立啟動並執行python可執行檔
1.產生spec檔案
python pyinstaller-1.3/Makespec.py --onefile --upx linuxlaptop.py
參數說明:
--onefile 產生單檔案
--upx 產生壓縮的檔案(可減小執行檔案體積,需先安裝upx軟體包)
2.產生最終的可執行檔
python pyinstaller-1.3/Build.py linuxlaptop.spec
執行完成後將在目前的目錄產生可執行檔linuxlaptop檔案,如有問題歡迎與我交流:linuxlaptop.cn。
========================================================================
用cx_Freeze把python打包成exe可執行檔
以前從來沒有試過把Python打包,昨天試了試,發現打包也是一件挺容易的事情.Python打包有很多種選擇.cx_Freeze是一種, py2exe也可以,還有一個pyinstaller.我用的是cx_Freeze,而py2exe因為sf實在太慢連不上.所以沒辦法,只好先用可以下載的.cx_Freeze的資料比較少,不過不是太痛苦,因為好像cx會比py2exe簡便易用,而且好像是跨平台的,不錯不錯.
cx_Freeze的用法就一個命令FreezePython.exe,打包也很快捷:
FreezePython.exe --install-dir="/your/path/to/install" app.py
然後就會把app.py以及其依賴的所有模組,包和庫全部歸整後放到--install-dir 所指的路徑下.
碰到兩個問題,一個是檔案編碼,一開始總是說找不到gb2312的編碼,後面google了一下,發現要這麼做:
在app.py中添加from encodings import gbk 一句,然後就可以了.
如果用到了gettext,要注意po檔案中的
"Content-Type: text/plain; charset=gbk\n"
"Content-Transfer-Encoding: cp936\n"
這兩句要這樣寫,字元集要用gbk,不要用gb2312.
另一個問題是控制台隱藏:
預設cx_Freeze打包後都是控制台程式,就算你打包一個wxPython程式,也會有一個黑黑的控制台在後面做背景,要去掉控制台就要這樣:
FreezePython.exe --install-dir="\your\install\path" --base-binary=Win32GUI.exe app.py
加了--bash-binary 後就可以只運行前台的介面了,不過如果程式出錯,會彈出一個錯誤對話方塊,說找不到traceback模組.
這就要在app.py檔案中加一句:
import traceback
把錯誤反饋以對話方塊形式彈出.