David Mertz 介紹了 6 種 Python 集成開(kāi)發(fā)環(huán)境,并比較了其特性、平臺和穩定性。他發(fā)現 -- 或許只是無(wú)意中對開(kāi)放源代碼模塊的測試 -- 免費產(chǎn)品似乎都比商業(yè)產(chǎn)品優(yōu)秀。
前幾周,我有幸對一些 Python 開(kāi)發(fā)環(huán)境做了一次全新的試用(或者說(shuō)是首次嘗試)。這樣很可能會(huì )涉及從實(shí)際嘗試“最佳文本編輯器,附加命令行”方法到 Python 開(kāi)發(fā),而對于更復雜的 Python 集成開(kāi)發(fā)環(huán)境 (IDE) 在 Python 討論網(wǎng)站上有詳盡的內容。
對 Python IDE 的整體印象使我得出了一個(gè)有點(diǎn)吃驚的結論。這可能是某些常理的關(guān)系,也可能只是巧合??偟膩?lái)說(shuō),我發(fā)現免費工具比花錢(qián)的商業(yè)工具更優(yōu)秀一些。
寫(xiě)在測評之外
首先我必須指出一些我 沒(méi)機會(huì )嘗試的工具,您可以自己測評:
PythonWare 的 PythonWorks Pro 1.1 看上去很有前途;請看其演示版的 屏幕截圖。它包括 Tkinter 表單設計器、新型的編輯器、調試器和漂亮的屏幕界面。它適用于 Linux、Windows 和 Solaris。PythonWorks Pro 的價(jià)格相當昂貴:400 美元。此次測評時(shí)我沒(méi)能獲得其供測評用的最終版本。
Boa Constructor 是個(gè)界面相當優(yōu)秀的開(kāi)放源代碼的 Python IDE,它包括 wxWindows 的表單設計器。同時(shí)具有出色的編輯器、調試器、項目管理器和一些其他組件。Boa Constructor 運行于 Win32 和 X11(需要支持合適平臺的 wxWindows)。不幸的是,其主頁(yè)聲稱(chēng)程序尚處于 "pre-alpha" 階段,雖然從屏幕快照來(lái)看相當優(yōu)秀,我覺(jué)得還是無(wú)法推薦這樣一個(gè)尚處于早期開(kāi)發(fā)階段的工具。
當然,最后一類(lèi)未被測評的工具是幾十種優(yōu)秀的 文本編輯器,具備各種 Python 友好功能,例如語(yǔ)法標簽高亮顯示、執行窗口、代碼合并、宏功能以及許多甚至最好的 IDE 也缺少的功能。這些工具在此次討論范圍之外,但是對于您最喜歡(并且熟悉)的文本編輯器還是有許多可以談的。
總會(huì )有些或多或少標準的和免費的 Python 代碼開(kāi)發(fā)工具??偟膩?lái)說(shuō),這些工具都是穩定、堅固、和設計周全的。另一方面,標準免費工具也并不一定那樣的華而不實(shí)。
Idle 是一個(gè)純 Python 下使用 Tkinter 編寫(xiě)的相當基本的 IDE。Idle 總的來(lái)說(shuō)是標準的 Python 發(fā)行版,甚至是由 Guido van Rossum 親自編寫(xiě)(至少最初的絕大部分)。您可在能運行 Python 和 TK 的任何環(huán)境下運行 Idle。打開(kāi) Idle 后出現一個(gè)增強的交互命令行解釋器窗口(具有比基本的交互命令提示符更好的剪切-粘貼、回行等功能)。除此之外,還有一個(gè)針對 Python 的編輯器(無(wú)代碼合并,但有語(yǔ)法標簽高亮和代碼自動(dòng)完成功能)、類(lèi)瀏覽器和調試器。菜單為 TK “剝離”式;也就是點(diǎn)擊頂部任意下拉菜單的虛線(xiàn)將會(huì )將該菜單提升到它自己的永久窗口中去。特別是 "Edit" 菜單,將其“靠”在桌面一角非常實(shí)用。Idle 的調試器提供斷點(diǎn)、步進(jìn)和變量監視功能;但并沒(méi)有其內存地址和變量?jì)热荽鏀祷蜻M(jìn)行同步和其他分析功能來(lái)得優(yōu)秀。當然,我的調試風(fēng)格包括某些分散的 print 命令,但您的方法可與我不同。
Idle 中的一些小問(wèn)題 -- 至少在 0.6 版中存在。在我的 Win95r2 系統下(也是我試用 Idle 的系統),彈出模板總會(huì )停留在屏幕上擋住我想輸入的東西??赡芨鼑乐氐氖沁@很容易在運行錯誤的腳本時(shí)引起 Idle 停止響應。例如,代碼 while 1:x=1 必定會(huì )引起 Idle 自行強制關(guān)閉,而非執行代碼。顯然,不會(huì )有人故意首先編寫(xiě)這段代碼,但即使在最老的 Python 交互會(huì )話(huà)也可使用 Ctrl-C 將其關(guān)閉(無(wú)可否認是有此功能的會(huì )話(huà))。
MacPython IDE 和 PythonWin 類(lèi)似,只是針對平臺不同。與 Idle 和 PythonWin 類(lèi)似,MacPython IDE 與針對其平臺的標準發(fā)行版一同出現,并且是免費軟件(由 Just van Rossum 編寫(xiě))。安裝 MacPython 完成后,我建議首先要做的是設法取得 Advanced Editor Patch (請參閱專(zhuān)欄后的 參考資料)。第一次安裝有點(diǎn)奇怪,但第三次成功了(我不知道最初的問(wèn)題在哪兒);安裝這個(gè)補丁就能獲得語(yǔ)法標簽高亮顯示以及一些上下文敏感的函數或模塊的幫助功能。除了標準版,我不知道是否有其它 IDE 能和 Mac 平臺上的 Python 一同工作。幸運的是,Just van Rossum 編寫(xiě)的這個(gè)工具既非常符合 Python 的習慣,又有類(lèi)似 Mac 的軟件風(fēng)格。
Komodo 是個(gè)剛發(fā)布的商業(yè) IDE。(本次測評使用更新的 beta 版;請參閱 屏幕截圖)。Komodo 是 ActiveState 的 多語(yǔ)言、多平臺 IDE。一個(gè)有趣的決定使 Komodo 基于 Mozilla 框架構建。初看起來(lái),Web 瀏覽器并不需要那么多對 IDE 有用的代碼,但 ActiveState 充分利用了這一點(diǎn)(Mozilla 試圖成為一個(gè)“平臺”而不僅僅是一個(gè)瀏覽器,事實(shí)也的確如此)。Komodo 一年的定價(jià)為 295 美元,而免費 beta 版出現后該定價(jià)相當令人失望。而且,ActiveState 似乎違反了 Komodo 代碼所取自的 Mozilla 的公共許可的精神(可能與原文有出入)。我希望 ActiveState 決定修改許可條例,來(lái)遵守開(kāi)放源代碼的慣例(可對技術(shù)支持和自動(dòng)更新收費)。
我試用的 Beta 1.3 支持 Python、Perl、TCL、Javascript 和 XML 的開(kāi)發(fā),并支持其他幾十種語(yǔ)言的語(yǔ)法標簽高亮顯示(但沒(méi)有更多語(yǔ)言支持)。Python 支持是目前最強的?,F有一個(gè)支持 Win32 和 Linux 的 beta 版,并將陸續支持其他平臺。
現在讓我們來(lái)分析購買(mǎi) Python IDE 的方法吧。人們通常認為商業(yè)產(chǎn)品會(huì )提供額外的功能而值得花錢(qián)購買(mǎi)。在某些方面的確如此。 WingIDE的售價(jià)是 100 美元。 BlackAdder 的售價(jià)是 80 美元(僅限在個(gè)人系統上使用)和 400 美元(可將 BlackAdder 的運行組件一同分發(fā)給其他人)??上У氖?,我發(fā)現這兩種產(chǎn)品都不足夠穩定,無(wú)法推薦給各位用于實(shí)際開(kāi)發(fā)。若是不能用于實(shí)際開(kāi)發(fā)的 IDE,那么常規功能就并不值那么多。但愿這兩種產(chǎn)品能通過(guò)新版本或修正補丁而有所提高。
BlackAdder 是在 linux 和 windows 下的基于 QT 的開(kāi)發(fā)環(huán)境;請參閱 屏幕截圖。在本專(zhuān)欄提到的產(chǎn)品中,該產(chǎn)品是唯一帶有表單設計器的一款,而且表單設計器自身做得很優(yōu)秀(用于 PyQT 編程)。就象 Delphi、Visual Basic 和類(lèi)似工具,您可以把小工具放置在面板上,在“屬性”表單中調整屬性與行為。元素的圖標有些呆板,特別是變灰的時(shí)候,但美觀(guān)并不是很重要。源代碼編輯器提供代碼合并和語(yǔ)法標簽高亮顯示,但沒(méi)有代碼自動(dòng)完成提示。BlackAdder 有個(gè)相當不錯的調試器,除了缺少監視功能外其它與免費工具差不多。
BlackAdder 甚至 WingIDE -- 我測試的 1.0 和 1.1b3 版 -- 都因存在問(wèn)題而無(wú)法推薦用作重大的開(kāi)發(fā)。有許多討厭的小地方,比如許可密鑰設置過(guò)程和古怪的 -- 很可能是遺漏了 -- 工具條提示。而且,還有許多小的錯誤,比如缺少“打開(kāi)最近文件”菜單項,因此,當程序運行時(shí)(不只是試驗代碼)您只能打開(kāi)交互命令行解釋器窗口。但這些問(wèn)題都是小問(wèn)題。致命問(wèn)題是 WingIDE 會(huì )在我的 Mandrake 7.1 中隨機產(chǎn)生分割錯誤。一旦發(fā)生該情況一切就都完了,您將丟失正在進(jìn)行的任何工作。“經(jīng)常保存”是個(gè)好建議,但這并不足以使 WingIDE 完全可用。
總結
對于喜歡結構化編程開(kāi)發(fā)環(huán)境的程序員來(lái)說(shuō),一些優(yōu)秀的 -- 還有些有前途但還不太優(yōu)秀的 -- Python IDE 現在就能獲得。全面地試用一下,因為即使是商業(yè)產(chǎn)品也有演示版;您將發(fā)現這些 IDE 是種加快開(kāi)發(fā)過(guò)程的好方法。同時(shí),密切注意本專(zhuān)欄的最新文章,我們還將測評一些其他 IDE 和已被測評產(chǎn)品的改進(jìn)版本。
聯(lián)系客服