[轉帖]Python IDE 測評

來源:互聯網
上載者:User

 David Mertz 博士 (mertz@gnosis.cx)

Accidental Ideologue, Gnosis Software, Inc.

David Mertz 介紹了 6 種 Python 整合式開發環境,並比較了其特性、平台和穩定性。他發現 -- 或許只是無意中對開放原始碼模組的測試 -- 免費產品似乎都比商業產品優秀。

前幾周,我有幸對一些 Python 開發環境做了一次全新的試用(或者說是首次嘗試)。這樣很可能會涉及從實際嘗試“最佳文字編輯器,附加命令列”方法到 Python 開發,而對於更複雜的 Python 整合式開發環境 (IDE) 在 Python 討論網站上有詳盡的內容。

對 Python IDE 的整體印象使我得出了一個有點吃驚的結論。這可能是某些常理的關係,也可能只是巧合。總的來說,我發現免費工具比花錢的商業工具更優秀一些。

 

Python 簡介
Python 是一種由 Guido van Rossum 開發的免費而且進階的解釋語言。它將清楚的文法和強大的(但可選的)物件導向語義結合了起來。Python 可在您工作使用的幾乎所有電腦平台上找到,而且具有較強的平台間移植性。

 

寫在測評之外
首先我必須指出一些我機會嘗試的工具,您可以自己測評:

  • PythonWare 的 PythonWorks Pro 1.1 看上去很有前途;請看其示範版的螢幕。它包括 Tkinter 表單設計器、新型的編輯器、調試器和漂亮的螢幕介面。它適用於 Linux、Windows 和 Solaris。PythonWorks Pro 的價格相當昂貴:400 美元。此次測評時我沒能獲得其供測評用的最終版本。
  • Boa Constructor 是個介面相當優秀的開放原始碼的 Python IDE,它包括 wxWindows 的表單設計器。同時具有出色的編輯器、調試器、專案管理器和一些其他組件。Boa Constructor 運行於 Win32 和 X11(需要支援合適平台的 wxWindows)。不幸的是,其首頁聲稱程式尚處於 "pre-alpha" 階段,雖然從螢幕快照來看相當優秀,我覺得還是無法推薦這樣一個尚處於早期開發階段的工具。
  • 當然,最後一類未被測評的工具是幾十種優秀的文字編輯器,具備各種 Python 友好功能,例如文法標籤高亮顯示、執行視窗、代碼合并、宏功能以及許多甚至最好的 IDE 也缺少的功能。這些工具在此次討論範圍之外,但是對於您最喜歡(並且熟悉)的文字編輯器還是有許多可以談的。

橫向比較
總會有些或多或少標準的和免費的 Python 代碼開發工具。總的來說,這些工具都是穩定、堅固、和設計周全的。另一方面,標準免費工具也並不一定那樣的華而不實。

Idle 是一個純 Python 下使用 Tkinter 編寫的相當基本的 IDE。Idle 總的來說是標準的 Python 發行版,甚至是由 Guido van Rossum 親自編寫(至少最初的絕大部分)。您可在能運行 Python 和 TK 的任何環境下運行 Idle。開啟 Idle 後出現一個增強互動命令列解譯器視窗(具有比基本的互動命令提示字元更好的剪下-粘貼、回行等功能)。除此之外,還有一個針對 Python 的編輯器(無代碼合并,但有文法標籤高亮和代碼自動完成功能)、類瀏覽器和調試器。菜單為 TK “剝離”式;也就是點擊頂部任意下拉式功能表的虛線將會將該菜單提升到它自己的永久視窗中去。特別是 "Edit" 菜單,將其“靠”在案頭一角非常實用。Idle 的調試器提供斷點、步進和變數監視功能;但並沒有其記憶體位址和變數內容存數或進行同步和其他分析功能來得優秀。當然,我的調試風格包括某些分散的 print 命令,但您的方法可與我不同。

Idle 中的一些小問題 -- 至少在 0.6 版中存在。在我的 Win95r2 系統下(也是我試用 Idle 的系統),彈出模板總會停留在螢幕上擋住我想輸入的東西。可能更嚴重的是這很容易在運行錯誤的指令碼時引起 Idle 停止回應。例如,代碼 while 1:x=1 必定會引起 Idle 自行強制關閉,而非執行代碼。顯然,不會有人故意首先編寫這段代碼,但即使在最老的 Python 互動會話也可使用 Ctrl-C 將其關閉(無可否認是有此功能的會話)。

PythonWin 在許多方面都比 Idle 優秀。當然,如軟體名稱所示,這個工具是針對 Win32 使用者的。獲得 PythonWin 的最簡單方法是下載 ActivePython 2.0 發行版,該版本相當不錯(為本專欄我安裝了 build 203)。ActiveState 的 Python 包括一系列優秀的附加模組,還有些(例如 NumPy 和 PIL)在安裝過程中可選擇作為附加下載。還有其他附加模組;一個特別的是 PythonWin (Idle 也包括在內),另一個是針對 Windows 指令碼編寫的一系列有用的 PythonCOM 向外延展群組件。ActiveState 還有非 Windows 發行版,但一些組件缺少與 Windows 的對應。

PythonWin 使用起來非常得心應手(就像使用 Windows 那樣舒服)。它有個好用的編輯器,包括代碼合并、文法標籤高亮顯示以及代碼自動完成特性。PythonWin 和有些 IDE 一樣,不包含任何類型的表單設計器;但它提供一個優秀的調試器,具有監視、代碼檢查、互動調試視窗、斷點、和其他調試器該有的功能。最重要的是,PythonWin 很穩定,儘管有時候在 Win95r2 系統上使用時會奇怪地“停止回應”。介面上來說,PythonWin 比較簡單,但非常吸引人,很好的運用了可嵌入和可對接的元素(我有點偏愛 Idle 風格的 "many windows everywhere",它也為其他許多 IDE 所採用的)。PythonWin 還整合了 ActiveState 的 HtmlHelp 版本的 Python 說明文檔和 PythonCOM。

MacPython IDE 和 PythonWin 類似,只是針對平台不同。與 Idle 和 PythonWin 類似,MacPython IDE 與針對其平台的標準發行版一同出現,並且是免費軟體(由 Just van Rossum 編寫)。安裝 MacPython 完成後,我建議首先要做的是設法取得 Advanced Editor Patch (請參閱專欄後的參考資料)。第一次安裝有點奇怪,但第三次成功了(我不知道最初的問題在哪兒);安裝這個補丁就能獲得文法標籤高亮顯示以及一些上下文敏感的函數或模組的協助功能。除了標準版,我不知道是否有其它 IDE 能和 Mac 平台上的 Python 一同工作。幸運的是,Just van Rossum 編寫的這個工具既非常符合 Python 的習慣,又有類似 Mac 的軟體風格。

MacPython IDE 含有 Python 命令列視窗(Mac 自身沒有命令列,所以需要多步實現)、編輯器、調試器甚至還有描述器。在其環境下,還有個函數跳轉清單、模組瀏覽器和其他一些工具。調試器很優秀,只是沒有監視器。“不包括在標準發行版中”的編輯器比較原始,但是補丁加入了文法標籤高亮顯示。然而,仍然沒有代碼合并或代碼自動完成(但是安裝補丁後有上下文函數文檔行)。內建的描述器是大多 IDE 所沒有的功能,這也是 MacPython 的優勢。

縱向比較
Komodo 是個剛發布的商業 IDE。(本次測評使用更新的 beta 版;請參閱螢幕)。Komodo 是 ActiveState 的 多語言、多平台 IDE。一個有趣的決定使 Komodo 基於 Mozilla 架構構建。初看起來,網頁瀏覽器並不需要那麼多對 IDE 有用的代碼,但 ActiveState 充分利用了這一點(Mozilla 試圖成為一個“平台”而不僅僅是一個瀏覽器,事實也的確如此)。Komodo 一年的定價為 295 美元,而免費 beta 版出現後該定價相當令人失望。而且,ActiveState 似乎違反了 Komodo 代碼所取自的 Mozilla 的公用許可的精神(可能與原文有出入)。我希望 ActiveState 決定修改許可條例,來遵守開放原始碼的慣例(可對支援人員和自動更新收費)。

我試用的 Beta 1.3 支援 Python、Perl、TCL、Javascript 和 XML 的開發,並支援其他幾十種語言的文法標籤高亮顯示(但沒有更多語言支援)。Python 支援是目前最強的。現有一個支援 Win32 和 Linux 的 beta 版,並將陸續支援其他平台。

以我的觀點,Komodo 更像是 PythonWin 的超集。據我所知,它不共用大多數的相同程式碼程式庫,但使用的感覺及其相似。由於繼承了 Mozilla 的特性,Komodo 是我所測評的軟體中介面最好的一個,因為同樣的原因它也是運行最慢的。我建議不要在較老的機器上使用 Komodo;我在 366Mhz Win95r2 系統上測試,發現它能運行,但是速度不快。雖然調試器和編輯器的介面與 PythonWin 差不多,但是您可編輯許多其他語言,以及調試 Perl 和 Python;而且您可在 Linux 下運行 Komodo。Komodo 的“代碼檢查”功能非常智能和獨特。它像許多近期文書處理軟體的拼字檢查器那樣運作:在輸入的時候,有問題的代碼以下劃曲線標示;您可繼續輸入,而它會一直標示著直到您返回並修正該問題,同時也是個很好的提示。Komodo 沒有試圖內建任何錶單設計器或者圖形編程,除此之外,作為 beta 版它是還是不錯的。

深入內部
現在讓我們來分析購買 Python IDE 的方法吧。人們通常認為商業產品會提供額外的功能而值得花錢購買。在某些方面的確如此。 WingIDE 的售價是 100 美元。BlackAdder 的售價是 80 美元(僅限在個人系統上使用)和 400 美元(可將 BlackAdder 的運行組件一同分發給其他人)。可惜的是,我發現這兩種產品都不足夠穩定,無法推薦給各位用於實際開發。若是不能用於實際開發的 IDE,那麼常規功能就並不值那麼多。但願這兩種產品能通過新版本或修正補丁而有所提高。

BlackAdder 是在 linux 和 windows 下的基於 QT 的開發環境;請參閱螢幕。在本專欄提到的產品中,該產品是唯一帶有表單設計器的一款,而且表單設計器自身做得很優秀(用於 PyQT 編程)。就象 Delphi、Visual Basic 和類似工具,您可以把小工具放置在面板上,在“屬性”表單中調整屬性與行為。元素的表徵圖有些呆板,特別是變灰的時候,但美觀並不是很重要。原始碼編輯器提供代碼合并和文法標籤高亮顯示,但沒有代碼自動完成提示。BlackAdder 有個相當不錯的調試器,除了缺少監視功能外其它與免費工具差不多。

不幸的是,在測試 V1.0 beta 2 中,我遇到了一些嚴重的使用問題。我測試了 Mandrake、Slackware 以及 Windows 包(但沒有測試 Debian 和 Redhat,雖然我認為 Linux 的變體只是軟體包不同)。各種問題無處不在(可能一部分原因是由於必須依賴正確的作業系統版本和修正版)。例如,預設字型實在太小,在 Linux 和 Windows 系統下都無法閱讀。改變編輯器字型需要單調地一個個地修改 20 種文法標記元素的字型(沒有許多其他編輯器和 IDE 中的“繼承字型”選項)。更糟的是在 Mandrake 7.1 和定製的 Slackware 7.1 中,當 BlackAdder 啟動時,Python 解譯器“意外終止”。您可以編輯檔案,但無法在 IDE 下運行。我改變 Python 路徑的嘗試 -- 指向 Python 2.0 或 Python 1.5.2 -- 成功地改變了出錯資訊,但並未解決問題。而且,在 Windows 下有些 Python 指令碼在 BlackAdder 中無法開啟;而獲得的提示是 “X 不是一個合法的 BlackAdder 檔案”。該資訊沒有明顯的規律。您有可能通過某些努力解決該問題 -- 但如果花費了 400 美元購買該產品,您一定不會有好心情來為購買的產品做調試了。

WingIDE 是個想當優秀的 IDE;請參閱螢幕。其編輯器包括大量語言的文法標籤高亮顯示,雖然它只是個面向 Python 的工具。原始碼瀏覽器對瀏覽項目或模組非常實用(表現在可導航原始碼和文檔行摘要中)。雖然沒有監視器,但調試器設計得很好。編輯器有優秀的命令自動完成和函數捷徑清單,但是沒有代碼合并。面向項目風格的 IDE 對於大型產品非常有用(在這方面,除了 Komodo 以外,它是大多免費 IDE 中較好的)。總體的介面就像增強 Idle,使用了與許多 TK 和 XWindow 介面類似的“多視窗”相片順序。我喜歡使用對接和嵌入(這方面,並不是過多使用 MS Visual Studio 造成的),但不同的開發人員可能喜歡不同風格的表單。WingIDE 是個很有前途的開發環境。

BlackAdder 甚至 WingIDE -- 我測試的 1.0 和 1.1b3 版 -- 都因存在問題而無法推薦用作重大的開發。有許多討厭的小地方,比如許可密鑰設定過程和古怪的 -- 很可能是遺漏了 -- 工具條提示。而且,還有許多小的錯誤,比如缺少“開啟最近檔案”功能表項目,因此,當程式運行時(不只是實驗代碼)您只能開啟互動命令列解譯器視窗。但這些問題都是小問題。致命問題是 WingIDE 會在我的 Mandrake 7.1 中隨機產生分割錯誤。一旦發生該情況一切就都完了,您將丟失進行中的任何工作。“經常儲存”是個好建議,但這並不足以使 WingIDE 完全可用。

總結
對於喜歡結構化編程開發環境的程式員來說,一些優秀的 -- 還有些有前途但還不太優秀的 -- Python IDE 現在就能獲得。全面地試用一下,因為即使是商業產品也有示範版;您將發現這些 IDE 是種加快開發過程的好方法。同時,密切注意本專欄的最新文章,我們還將測評一些其他 IDE 和已被測評產品的改進版本。

 

參考資料

  • 請瞭解 PythonWare 公司的 PythonWorks Pro 1.1
  • 請看一下 Boa Constructor,它是基於 wxWindows/wxPython 的螢幕構建器和開發環境
  • ActiveState 的 ActivePython 2.0 (Win32 版)包括 Mark Hammond 的 PythonWin IDE 和許多其它好工具(它們還有 Linux 和 Solaris 版本)。
  • ActiveState 的 Komodo 多語言識別碼E 現提供 Win32 和 Linux 版本。
  • 請瞭解 MacPython。
  • 請下載 Advanced Editor Patch 以及其他 MacPython IDE 的增強組件。
  • 請查閱 Kompany 的 BlackAdder 首頁。
  • 請閱讀 Archaeopteryx 的官方 WingIDE 資訊。
  • 還有在 developerWorks上,請閱讀 “Linux IDE 的比較” 和 “Python 的 TK 編程”。

 

有關作者 
David Mertz 是個懶惰而沒有耐心的人,他的至理名言是傲慢不應與放肆或大男子氣概混為一談。可通過 mertz@gnosis.cx 與 David 聯絡;他的精力完全投入在 http://gnosis.cx/publish/ 上。非常歡迎對過去的、這一篇或將來的專欄文章提出意見和建議。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.