歡迎光臨
每天分享高質量文章

Python的10大整合開發環境和程式碼編輯器(指南)

來源:Python程式員

ID:pythonbuluo

使用IDLE或者Python Shell來編寫Python是非常適合於簡單程式的,但是這些工具往往將大型的程式設計專案變成一個個充滿絕望和沮喪的“坑”。使用一款整合開發環境甚至是一款好的專用的程式碼編輯器會讓程式設計充滿樂趣,但是如何選擇呢?

各位看官,不要畏懼,我們將在這裡為您解釋和揭開無數可供選擇的神秘面紗。雖然我們無法決定哪一款最適合於你和你的專案,但是我們會闡明每一款的優缺點,幫助您作出最明智的決定。

為了淺顯易懂,我們將我們的工具清單分為兩部分,一部分是專門用於Python開發的專有工具,另一部分是我們可以用於Python開發的一般工具。我們將為每一款工具列出“為什麼是它”和“為什麼不是它”(優缺點)。最後要說的是,他們之間並不相互排斥,所以您可以在幾乎無害的情況下自行嘗試。

但是,首先…

什麼是整合開發環境和程式碼編輯器?

整合開發環境(IDE,Integrated Development Environment)是專用於軟體開發的程式。顧名思義,IDE集成了幾款專門為軟體開發而設計的工具。這些工具通常包括一個專門為了處理程式碼的編輯器(例如語法高亮和自動補全);構建、執行、除錯工具和某種形式的原始碼控制。

大部分的整合開發環境相容多種程式語言並且包含更多功能,因此一般來說體積較大,需要時間去下載和安裝並且為了正確使用需要更高深的知識。

相比之下,一款特製的程式碼編輯器可以像帶有語法高亮和程式碼格式化功能的文字編輯器一樣簡單。大多數優秀的程式碼編輯器都可以執行程式碼和控制除錯器,並且也可以和原始碼控制系統進行最好的互動。與整合開發環境相比,出色的專用程式碼編輯器往往體積更小更迅捷,但同時功能更少。

優秀Python程式設計環境的要求

因此在程式設計環境中什麼是我們真正需要的呢?每個應用的功能各異,但是以下是使程式設計更容易的核心功能:

  • 儲存和多載程式碼檔案

如果一款整合開發環境或者編輯器不允許你儲存現有工作,併在之後重新開啟時不能保持你離開時的相同狀態,那麼它就不是什麼整合開發環境。

  • 在環境內執行程式碼

類似的是,如果你必須退出編輯器來執行Python程式碼,那麼它也就是一個普通的文字編輯器。

  • 支援除錯

在程式執行時支援逐步執行程式碼是所有整合開發環境和大多數優秀程式碼編輯器必備的核心功能。

  • 語法高亮

支援對程式碼中的關鍵詞、變數和符號快速標識可以讓閱讀和理解程式碼更為輕鬆。

  • 自動補充程式碼格式

任何一個引人註目的編輯器或者整合開發環境都會在一個“while”或者“for”陳述句末端識別冒號,並且知道下一行應該縮排。

當然還有許多你或許關註的別的功能,例如原始碼控制、擴充套件模型、構建和測試工具、語言幫助等等。但是以上所列4點是我認為一個出色的編輯環境所必須具備的核心功能。

當我們考慮了這些功能後,讓我們首先來關註一些可用於Python開發的通用工具。

支援Python的通用編輯器和整合開發環境

Eclipse + PyDev

類別:整合開發環境

網址:www.eclipse.org

Python工具:PyDev, www.pydev.org

 如果你足夠關註開源社群,那麼你一定聽說過Eclipse。Eclipse實際上是一款面向Java開發的相容Linux, Windows和OS X的整合開發環境。它擁有豐富的外掛和擴充套件功能市場,這使得Eclipse適用於各種各樣的開發專案。

其中一個外掛就是PyDev,它支援Python除錯、程式碼補全和互動式Python控制檯。在Eclipse中安裝PyDev非常便捷,只需從Eclipse中選擇“Help”點選“Eclipse Marketplace”然後搜尋PyDev。點選安裝,必要的時候重啟Eclipse即可。

優點:如果你已經安裝了Eclipse,安裝PyDev是非常方便快捷的,對於資深Eclipse開發者來說,PyDev是幾乎不需要另行學習的。

缺點:如果你只是一個Python初學者或者軟體開發小白,掌握Eclipse還有很長的路要走。記得我說過整合開發環境往往體積較大並且需要更多的知識去正確使用,那麼Eclipse正是如此並且就像一袋子小晶片一樣需要你逐一瞭解。

Sublime Text

類別:程式碼編輯器

網址:http://www.sublimetext.com

Sublime Text是一款非常流行的程式碼編輯器,其開發者是一名谷歌的工程師,其夢想是使之成為更好的文字編輯器。Sublime Text支援Python程式碼編輯同時相容所有平臺,並且豐富的外掛(稱之為“包”)擴充套件了語法和編輯功能。

安裝額外的Python擴充套件可能會比較棘手,Sublime Text中所有的包都是用Python寫成的,並且安裝社群擴充套件往往需要直接在Sublime Text中執行Python指令碼。

優點:Sublime Text在程式設計社群內很受推崇。單單從程式碼編輯器的角度來看,Sublime Text迅捷小巧並且具有良好的相容性。

缺點:儘管你可以無限期的使用測試版本但是Sublime Text不是免費軟體。在Sublime Text中安裝擴充套件外掛可能會比較棘手,另外並不支援直接在編輯器內部執行或除錯程式碼。

為了充分利用Sublime Text設定,你可以閱讀我們的Python+Sublime Text設定指南,或者觀看我們更深層次的影片教學,這會幫助你在Sublime Text 3中建立一個高效的Python開發環境。

Atom

類別:程式碼編輯器

網址:https://atom.io/

同樣相容所有平臺的Atom被稱為是“21世紀可破解的文字編輯器”。開源的Atom擁有時尚的介面、檔案系統瀏覽器和擴充套件外掛市場,它是使用Electron構建的,Electron使用JavaScript、HTML和CSS構建跨平臺的桌面應用。Python語言由一款可在Atom執行時安裝的擴充套件外掛支援。

優點:得益於Electron,Atom廣泛相容各大平臺。同樣Atom小巧且下載和載入都非常迅速。

缺點:內建並不支援構建和除錯,這些功能是由社群提供支援的。同樣由於Atom建立在Electron框架上,所以它始終執行在JavaScript行程中而不是作為本地應用執行。

GNU Emacs

類別:程式碼編輯器

網址:https://www.gnu.org/software/emacs/

讓我們回到iPhone和Android之戰前,在Linux和Windows的戰爭之前甚至是在PC和Mac的戰爭前,有一場“編輯器之戰”。而GNU Emacs就是戰鬥中的一員。伴隨著狂熱的追隨,被稱作“可擴充套件、可定製、自動記錄、實時顯示的編輯器”GNU Emacs幾乎一直縈繞在UNIX周圍。

終身免費且相容任何平臺(以某種形式),GNU Emacs使用強大的Lisp程式語言進行定製,併為Python開發提供各種定製指令碼。

優點:瞭解了 Emacs,使用過 Emacs,你便會愛上 Emacs,Lisp作為第二語言,你清楚它給你的力量可以讓你為所欲為。

缺點:定製化意味著向多種多樣的指令碼檔案中編寫(或複製貼上)Lisp,如果沒有他人提供,那麼你必須去學習Lisp並且搞懂它是如何執行的。另外,Emacs是一款非常優秀的作業系統,如果它僅僅被當作一款優秀的文字編輯器….

請務必參考我們的Python + Emacs設定指南來進行設定。

VI/VIM

類別:程式碼編輯器

網址:https://www.vim.org/

在文字編輯器戰場另一側是VI(又名VIM),預設安裝在幾乎每一個UNIX系統和Mac OS X系統中,VI有著同樣的狂熱追隨。VI和VIM是一種模型編輯器,它將文字檢視從文字編輯中分離。VIM在原始VI之上做了諸多改進,包括可擴充套件模型和就地程式碼構建。VIMScripts可用於各種Python開發任務。

優點:瞭解了VI,使用過 VI,你也會愛上 VI。VIMScripts並不會嚇退你,並且你可以按你的意願去做。

缺點:就像Emacs一樣,你可能並不適應為了支援Python開發環境自行查詢或者撰寫指令碼,此外你可能並不清楚模型編輯器是如何工作的。另外,VI是一款不錯的文字編輯器當且僅當它擁有一個出色的作業系統。

如果您要使用這種組合,請參閱我們的Python + VIM安裝指南,我們將為您提供提示和外掛建議。

Visual Studio

型別:整合開發平臺

網址:https://www.visualstudio.com/vs/

Python工具:Python Tools for Visual Studio, 也稱PTVS

與Eclipse進行多方面比較,由Microsoft建立的Visual Studio是一款全功能整合開發平臺。VS僅相容Windows和Mac OS系統,它既提供了免費版(社群版)也提供了付費版(專業版和企業版)。VS支援各種平臺的開發,並且附帶了自己的擴充套件外掛市場。

Python Tools for Visual Studio (又名PTVS)實現了在VS中進行Python程式設計並且支援Python智慧感知、除錯和其他工具。

優點:就像Eclipse一樣,如果你已經因為其他開發程式安裝了VS那麼新增PTVS時非常便捷的。

缺點:和Eclipse相同如果僅僅為了Python,那麼VS是一個大型下載任務。另外如果你是Linux系統,那你並不走運,因為VS並不支援Linux平臺。

Visual Studio Code

類別:程式碼編輯器

網址:https://code.visualstudio.com/

Python工具:https://marketplace.visualstudio.com/items?itemName=ms-python.python

不要與完全版的VS混淆,Visual Studio Code(也稱作VS Code)是一款相容Linux,Mac OS X和Windows 平臺的全功能程式碼編輯器。麻雀雖小但五臟俱全,VS Code開源、可擴充套件並且可以對幾乎所有任務進行配置。就像Atom一樣,VS Code建立在Electron基礎之上,因此它具有相同的優點和缺點。

在VS Code中安裝Python支援外掛非常簡單,它的市場是一個快速點選按鈕。只需要搜尋Python,點選安裝然後必要的時候重新啟動,VS Code就會自動識別你的Python安裝和庫。

優點:同樣歸功於Electron,VS Code支援所有開發平臺,同樣令人驚喜的是小巧的體格卻蘊含了豐富的功能,同時它也是開源的。

缺點:Electron的使用意味著VS Code不是本地應用。另外,有些人可能從原則上並不使用Microsoft資源。

Python專用的編輯器和整合開發環境

PyCharm

類別:整合開發環境

網址:https://www.jetbrains.com/pycharm/

PyCharm是最好的一個(也是唯一一個)專門面向於Python的全功能整合開發環境。同樣擁有付費版(專業版)和免費開源版(社群版),PyCharm不論是在Windows, Mac OS X系統中, 還是在Linux系統中都支援快速安裝和使用。

開箱即用,PyCharm直接支援Python開發環境,開啟一個新的檔案然後就可以開始編寫程式碼。你也可以在PyCharm中直接執行和除錯Python程式,並且它支援原始碼管理和專案。

優點:這是真正的Python整合開發環境,擁有眾多便利和支援社群。它的編輯、執行和除錯功能統統開箱即用。

缺點:PyCharm存在載入較慢的問題,另外對於已有的專案,預設設定可能需要調整。

Spyder

類別:整合開發環境

網址:https://github.com/spyder-ide/spyder

Spyder是一款為了資料科學工作流做了最佳化的開源Python整合開發環境。它是附在Anaconda軟體包管理器發行版中的,因此根據你的設定,或許你已經在機器中安裝了Spyder。

Spyder引人註目的一點是其標的受眾是使用Python的資料科學家們。你一定會留意到這一點,舉個例子來說,Spyder很好的集成了一些諸如SciPy、NumPy和Matplotlib這樣的公共Python資料科學庫。

Spyder擁有大部分你所期待的整合開發環境該具備的功能,例如具備強大語法高亮功能的程式碼編輯器,Python程式碼補全,甚至是整合檔案瀏覽器。

我從未在其他Python編輯環境中見過的一個特殊功能是Spyder的“變數瀏覽器”功能,它會以表格形式出現在整合開發環境介面右側來展示資料。就我個人來說,雖然我並不十分需要這個功能,但是它看起來的確很整潔。如果你是一位日常用Python做資料科學工作的人,那你一定會深深愛上這個獨特的功能。Spyder關於IPython或者說Jupyter的整合也做得非常好。

總之,我認為Spyder比其他的整合開發環境更基本,我更願意把它看做是一款專業工具而不是我日常使用的編輯環境。關於Spyder比較優秀的一點是它相容Windows、macOS和 Linux系統並且是一個完全開源軟體。

優點:當你是使用Anaconda Python發行版的資料科學家時你會愛上它。

缺點:更有經驗的Python開發人員可能會覺得Spyder太基本了以至於不能支援每日所需的基本工作,這樣的話還不如選擇一個更為完整的整合開發環境或者定製編輯器解決方案。

Thonny

類別:整合開發環境

網址:http://thonny.org/

作為Python整合開發環境大家庭中的新成員,Thonny被稱作是針對新手的一款整合開發環境。由愛沙尼亞塔爾圖大學的電腦科學學院開發並維護的Thonny適用於全部主流平臺,並且在網站上附有安裝指南。

預設情況下,Thonny會和自帶捆綁的Python版本一起安裝,所以你不需要再安裝什麼新的東西。更有經驗的老手可能需要調整這個設定以便找到和使用已安裝的庫。

優點:你是一名Python新人小白,並且一切就緒需要一款整合開發環境的時候你會選擇它。

缺點:更有經驗的Python老手可能會覺得Thonny同樣太基礎了,並且其內建直譯器只是一個工作場合,而不是一個可以與之共事的工具。此外,作為一款新興工具,你在遇到問題時很有可能發現沒有現成的解決方法。

哪一個是為你量身定做的?

只有你自己可以決定中意哪一款,但是還是有一些基本建議:

  • Python開發新人應該嘗試越少定製化越好的解決方案,越少阻礙,越好

  • 如果你將文字編輯器用於其他用途(如網頁或檔案編輯)那麼查詢程式碼編輯器方案。

  • 如果你已經在使用其他開發軟體,你可能會發現將Python功能新增到現有工具集更容易。

英文原文:https://realpython.com/blog/python/python-ides-code-editors-guide/  
譯者:Quinn_W  

《Python人工智慧和全棧開發》2018年07月23日即將在北京開課,120天衝擊Python年薪30萬,改變速約~~~~

*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

– END –


更多Python好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂