常用的python模塊及安裝方法


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的正則表達式調試工具,
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———— 模塊封裝了“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
============================================

我常用的幾個第三方 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: ../../support/loader/run ../../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 

    把錯誤反饋以對話框形式彈出.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM