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