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
wikidpadphp
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的正則表達式調試工具,
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高。html
############### 本身補充一下 ##################
遊戲3D pyglet、pythonOgre、 blender(c),k-3d(c++),vpython,panda3d
===============================================
python包包收集 catswhocode.com 的 jbj python
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———— 模塊封裝了「OpenGL應用程序編程接口」,經過該模塊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
============================================linux
我經常使用的幾個第三方 Python 庫收藏 做者:賴勇浩(http://blog.csdn.net/lanphaday)
xPythonc++
若是你以前是 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 並不比這些昂貴的工具差多少哦!程序員
py2exeweb
按照邪惡的 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
1、下載並編譯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: ../../support/loader/run ../../support/loader/run_d
(2)make 鏈接生成linux的 .o 文件
4.生成編譯配置文件
(1)python Configure.py 生成config.dat配置文件
2、編譯獨立運行的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
把錯誤反饋以對話框形式彈出.