“工欲善其事,必先利其器”,如果說(shuō)編程是程序員的手藝,那么IDE就是程序員的吃飯家伙了。
IDE的全稱(chēng)是Integration Development Environment(集成開(kāi)發(fā)環(huán)境),一般以代碼編輯器為核心,包括一系列周邊組件和附屬功能。一個(gè)優(yōu)秀的IDE,最重要的就是在普通文本編輯之外,提供針對特定語(yǔ)言的各種快捷編輯功能,讓程序員盡可能快捷、舒適、清晰的瀏覽、輸入、修改代碼。對于一個(gè)現代的IDE來(lái)說(shuō),語(yǔ)法著(zhù)色、錯誤提示、代碼折疊、代碼完成、代碼塊定位、重構,與調試器、版本控制系統(VCS)的集成等等都是重要的功能。以插件、擴展系統為代表的可定制框架,是現代IDE的另一個(gè)流行趨勢。
IDE并非功能越多越好,因為更多的功能往往意味著(zhù)更大的復雜度,這不但會(huì )分散程序員本來(lái)的精力,而且還可能帶來(lái)更多的錯誤。只要基本功能滿(mǎn)足需要,符合自己使用習慣的IDE才是最好的IDE。程序員的邏輯永遠是:用最合適的工具做最合適的事情。
正因為此,比起大而全的IDE,以單純的文本編輯器結合獨立的調試器、交互式命令行等外部小工具也是另一種開(kāi)發(fā)方式。由于python本身的簡(jiǎn)潔,因此在寫(xiě)小的代碼片段以及通過(guò)示例代碼學(xué)習時(shí)這種方式尤其適合。
這里簡(jiǎn)單介紹Python程序員中最流行的若干IDE。
Python的各個(gè)常見(jiàn)發(fā)行版都有內置的IDE,雖然它們的功能一般不夠強大完整,但簡(jiǎn)便易得就是最大的優(yōu)勢。 對于初學(xué)者來(lái)說(shuō),它們也是上手的最好選擇,可以讓你更專(zhuān)注于語(yǔ)言本身而不會(huì )被繁復的IDE分散精力。
IDLE是Python標準發(fā)行版內置的一個(gè)簡(jiǎn)單小巧的IDE,包括了交互式命令行、編輯器、調試器等基本組件,足以應付大多數簡(jiǎn)單應用。 IDLE是用純Python基于Tkinter編寫(xiě)的的,最初的作者正是Python之父Guido van Rossum本人。
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html -- 《One Day of IDLE Toying》,圖文并茂的入門(mén)文章
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/IDLE-chinese.htm -- 《One Day of IDLE Toying》中文版
PythonWin是Python Win32 Extensions(半官方性質(zhì)的python for win32增強包)的一部分,也包含在ActivePython的windows發(fā)行版中。如其名字所言,只針對win32平臺。
總體來(lái)說(shuō),PythonWin是一個(gè)增強版的IDLE,尤其是易用性方面(就像windows本身的風(fēng)格一樣)。除了易用性和穩定性之外,(簡(jiǎn)單的)代碼完成和更強的調試器都是相對于IDLE的明顯優(yōu)勢。
Python Win32 Extensions的下載頁(yè):http://sourceforge.net/projects/pywin32/
ActivePython的主頁(yè):http://www.activestate.com/Products/ActivePython/
MacPythonIDE是Python的Mac OS發(fā)行版內置的IDE,可以看作是PythonWin的Mac對應版本,由Guido的哥哥Just van Rossum編寫(xiě)。
Emacs和Vim號稱(chēng)是這個(gè)星球上最強大(以及第二強大)的文本編輯器,對于許多程序員來(lái)說(shuō)是萬(wàn)能IDE的不二(三?)選擇。 比起同類(lèi)的通用文本編輯器如UltraEdit,Emacs和Vim由于擴展功能的強大,可以針對性地搭建出更為完整便利的IDE。
Emacs -- Emacs及python-mode的簡(jiǎn)介
Emacs23 -- Emacs最新版本,完全支持unicode,目前為開(kāi)發(fā)中分支
Vim -- Vim 通用編輯環(huán)境使用技巧推介
PyIDEguider、VimPython、VimPythonTDD -- 社區內幾篇介紹在Vim環(huán)境下進(jìn)行Python開(kāi)發(fā)的文章
雖然二者掌握之后可以說(shuō)是終身受益,但學(xué)習曲線(xiàn)都比較陡峭。 由于歷史原因,它們的設計理念都是基于純ascii字符環(huán)境,GUI相對來(lái)說(shuō)不是支持的重點(diǎn),大量使用快捷鍵才能帶來(lái)最大的便利。 對于初學(xué)者來(lái)說(shuō),相對而言Vim更簡(jiǎn)潔一些,但Emacs的GUI與一般編輯器的習慣更接近些。
Eclipse是新一代的優(yōu)秀泛用型IDE,雖然是基于Java技術(shù)開(kāi)發(fā)的,但出色的架構使其具有不遜于Emacs和Vim的可擴展性,現在已經(jīng)成為了許多程序員最?lèi)?ài)的瑞士軍刀。
Eclipse -- Eclipse集成開(kāi)發(fā)環(huán)境使用說(shuō)明,簡(jiǎn)略介紹了Eclipse插件開(kāi)發(fā)的基礎知識
PyDev是Eclipse上的Python開(kāi)發(fā)插件中最成熟完善的一個(gè),而且還在持續的活躍開(kāi)發(fā)中。除了Eclipse平臺提供的基本功能之外,PyDev的代碼完成、語(yǔ)法查錯、調試器、重構等功能都相當出色,可以說(shuō)在開(kāi)源產(chǎn)品中是最為強大的一個(gè),許多貼心的小功能也很符合編輯習慣,用起來(lái)相當順手。
速度和資源占用是致命傷,在低配置機器上跑起來(lái)比較吃力。
PyDev -- PyDev開(kāi)發(fā)環(huán)境簡(jiǎn)介
Eclipse的主頁(yè):http://www.eclipse.org/
PyDev的主頁(yè):http://pydev.sourceforge.net/
PyDev使用手冊:http://www.fabioz.com/pydev/manual_101_root.html (Eng) 此入門(mén)手冊從安裝到開(kāi)發(fā)過(guò)程中的使用,并且是圖文顯示,推薦大家使用.
技術(shù)開(kāi)發(fā)參考: 用 Eclipse,PyDev 和 Ant 進(jìn)行 Python 開(kāi)發(fā),http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html
UliPad是國內知名pythoner,也是PythonCN社區核心成員limodou開(kāi)發(fā)的IDE。
很有特色的一個(gè)輕量級python IDE,功能很全面而不失小巧輕便,特別適合寫(xiě)小的腳本。
即時(shí)生成代碼的UML類(lèi)圖是獨此一家的功能,此外還特別注重與外部工具的集成。例如,集成了wxGlade作為所見(jiàn)即所得的GUI開(kāi)發(fā)環(huán)境,集成了Winpdb作為調試器,甚至還能與3D建模工具Blender集成。
SPE沒(méi)有管理Project的概念,這樣開(kāi)發(fā)多文件多目錄組成的項目時(shí)會(huì )不太方便。此外界面設計相對來(lái)說(shuō)不夠細致,也算是瑕疵。
SPE的主頁(yè):http://stani.be/python/spe/
專(zhuān)為快速開(kāi)發(fā)基于wxPython的GUI程序而設計的IDE,支持“所見(jiàn)即所得”的控件拖放式開(kāi)發(fā),被稱(chēng)為Python世界中的Delphi。
曾被sourceforge推選為"Project of the Month",不過(guò)最近開(kāi)發(fā)速度趨于緩慢。
Boa Constructor的主頁(yè):http://boa-constructor.sourceforge.net/
Eric3的主頁(yè):http://www.die-offenbachs.de/detlev/eric3.html
Wingware公司開(kāi)發(fā)的商業(yè)產(chǎn)品,總體來(lái)說(shuō)是目前最為強大專(zhuān)業(yè)的Python IDE,開(kāi)源項目可以申請到免費的license。
最大的缺點(diǎn)和PyDev一樣,速度較慢,資源占用多。
Wingware的主頁(yè):http://wingware.com/
另一個(gè)優(yōu)秀的商業(yè)產(chǎn)品,由ActiveState公司開(kāi)發(fā),是一個(gè)泛用的腳本語(yǔ)言IDE,除了Python外還支持javascript、perl、php、ruby、tcl等多種語(yǔ)言。
Komodo的主頁(yè):http://www.activestate.com/Products/Komodo/
Textmate是Mac OSX平臺的Cocoa原生程序,類(lèi)似UltraEdit。以靈活的Bundles和Code Snippets著(zhù)稱(chēng),支持大多數的腳本語(yǔ)言。Rails的全體開(kāi)發(fā)團隊都用這個(gè)Editor。類(lèi)似Emacs/vi,需要配合ctags分析python代碼結構,可以很容易的做unittest等功能。需要特別指出的是它對于Django的model和template、以及Zope都有專(zhuān)門(mén)的支持。
Textmate的主頁(yè):http://macromates.com/
Delphi開(kāi)發(fā)的Python IDE,只有windows版本。
PyScripter的主頁(yè):http://mmm-experts.com/Products.aspx?ProductId=4
IPython的主頁(yè):http://ipython.scipy.org/
Winpdb的主頁(yè):http://www.digitalpeers.com/pythondebugger/
基于全新的Literate Programming(文學(xué)化編程)理念的開(kāi)發(fā)工具,詳細的介紹參見(jiàn):LeoEnvironment
Leo的主頁(yè):http://webpages.charter.net/edreamleo/front.html
Bluefish 通常被認為是一個(gè)類(lèi)似 Homesite 的網(wǎng)頁(yè)編輯器,但事實(shí)上它不僅如此。它應該是一個(gè)通用的文本編輯器,支持 C、PHP、Python、Ruby、Perl、Java、Shell、Tcl 等許多種編程語(yǔ)言,支持語(yǔ)法高亮、自動(dòng)換行、自動(dòng)關(guān)閉 HTML 標簽等,可同時(shí)編輯多個(gè)文檔。
Bluefish 當然不能算是一款 Python 的 IDE 工具,但如果做 Web 相關(guān)的開(kāi)發(fā)( DjanGo、TurboGears 等),用它來(lái)寫(xiě)程序顯然很方便。而且 Bluefish 相當友好,基本上不用學(xué)就會(huì )用,可以使我等菜鳥(niǎo)盡快將精力轉移到 Python 的學(xué)習上來(lái)。
Bluefish 官方站在 http://bluefish.openoffice.nl/index.html 目前可以運行在大多數類(lèi) UNIX 操作系統上。
swordsp的個(gè)人建議:
初學(xué)者首選IDLE / PythonWin / MacPython
Emacs / Vim / Eclipse+PyDev是強大且通用的解決方案,取決于你更熟悉哪個(gè)環(huán)境,如果都沒(méi)有基礎,更推薦Eclipse+PyDev。
Boa長(cháng)處在基于wxPython的快速GUI開(kāi)發(fā)。
其它比較Python IDE的文章:
http://www-128.ibm.com/developerworks/cn/linux/sdk/python/charm-14/index.html
"Charming Python"專(zhuān)欄作者David Mertz的測評文章,寫(xiě)于2001年,許多內容已經(jīng)過(guò)于陳舊了,但仍有參考價(jià)值。
http://spyced.blogspot.com/2005/09/review-of-6-python-ides.html -- review-of-6-python-ides.html
http://spyced.blogspot.com/2006/02/pycon-python-ide-review.html -- pycon-python-ide-review.html
較新的兩篇Python IDE測評文章(原地址需代理才能訪(fǎng)問(wèn),后一個(gè)附件鏈接是本地的備份),分別比較了PyDev、Eric3、Boa Constructor、BlackAdder、Komodo、WingIDE、SPE。
聯(lián)系客服