使用IDLE或者Python Shell來編寫Python是非常適合于簡單程序的,但是這些工具往往將大型的編程項目變成一個個充滿絕望和沮喪的“坑”,。使用一款集成開發(fā)環(huán)境甚至是一款好的專用的代碼編輯器會讓編程充滿樂趣,,但是如何選擇呢? 各位看官,,不要畏懼,,我們將在這里為您解釋和揭開無數(shù)可供選擇的神秘面紗。雖然我們無法決定哪一款最適合于你和你的項目,,但是我們會闡明每一款的優(yōu)缺點,,幫助您作出最明智的決定。 為了淺顯易懂,,我們將我們的工具清單分為兩部分,,一部分是專門用于Python開發(fā)的專有工具,另一部分是我們可以用于Python開發(fā)的一般工具,。我們將為每一款工具列出“為什么是它”和“為什么不是它”(優(yōu)缺點),。最后要說的是,,他們之間并不相互排斥,所以您可以在幾乎無害的情況下自行嘗試,。 但是,,首先... 什么是集成開發(fā)環(huán)境和代碼編輯器集成開發(fā)環(huán)境(IDE,Integrated Development Environment)是專用于軟件開發(fā)的程序,。顧名思義,,IDE集成了幾款專門為軟件開發(fā)而設(shè)計的工具。這些工具通常包括一個專門為了處理代碼的編輯器(例如語法高亮和自動補全),;構(gòu)建,、執(zhí)行、調(diào)試工具和某種形式的源代碼控制,。 大部分的集成開發(fā)環(huán)境兼容多種編程語言并且包含更多功能,,因此一般來說體積較大,需要時間去下載和安裝并且為了正確使用需要更高深的知識,。 相比之下,,一款特制的代碼編輯器可以像帶有語法高亮和代碼格式化功能的文本編輯器一樣簡單。大多數(shù)優(yōu)秀的代碼編輯器都可以執(zhí)行代碼和控制調(diào)試器,,并且也可以和源碼控制系統(tǒng)進行最好的交互,。與集成開發(fā)環(huán)境相比,出色的專用代碼編輯器往往體積更小更迅捷,,但同時功能更少,。 優(yōu)秀Python編程環(huán)境的要求因此在編程環(huán)境中什么是我們真正需要的呢?每個應(yīng)用的功能各異,,但是以下是使編程更容易的核心功能:
如果一款集成開發(fā)環(huán)境或者編輯器不允許你保存現(xiàn)有工作,,并在之后重新打開時不能保持你離開時的相同狀態(tài),那么它就不是什么集成開發(fā)環(huán)境,。
類似的是,,如果你必須退出編輯器來運行Python代碼,那么它也就是一個普通的文本編輯器,。
在程序運行時支持逐步運行代碼是所有集成開發(fā)環(huán)境和大多數(shù)優(yōu)秀代碼編輯器必備的核心功能,。
支持對代碼中的關(guān)鍵詞、變量和符號快速標識可以讓閱讀和理解代碼更為輕松,。
任何一個引人注目的編輯器或者集成開發(fā)環(huán)境都會在一個“while”或者“for”語句末端識別冒號,,并且知道下一行應(yīng)該縮進。 當然還有許多你或許關(guān)注的別的功能,,例如源碼控制,、擴展模型、構(gòu)建和測試工具、語言幫助等等,。但是以上所列4點是我認為一個出色的編輯環(huán)境所必須具備的核心功能,。 當我們考慮了這些功能后,讓我們首先來關(guān)注一些可用于Python開發(fā)的通用工具,。 支持Python的通用編輯器和集成開發(fā)環(huán)境Eclipse + PyDev網(wǎng)址:www.eclipse.org Python工具:PyDev, www.pydev.org 如果你足夠關(guān)注開源社區(qū),,那么你一定聽說過Eclipse。Eclipse實際上是一款面向Java開發(fā)的兼容Linux, Windows和OS X的集成開發(fā)環(huán)境,。它擁有豐富的插件和擴展功能市場,,這使得Eclipse適用于各種各樣的開發(fā)項目。 其中一個插件就是PyDev,,它支持Python調(diào)試,、代碼補全和交互式Python控制臺。在Eclipse中安裝PyDev非常便捷,,只需從Eclipse中選擇“Help”點擊“Eclipse Marketplace”然后搜索PyDev,。點擊安裝,必要的時候重啟Eclipse即可,。 優(yōu)點:如果你已經(jīng)安裝了Eclipse,,安裝PyDev是非常方便快捷的,對于資深Eclipse開發(fā)者來說,,PyDev是幾乎不需要另行學習的,。 缺點:如果你只是一個Python初學者或者軟件開發(fā)小白,掌握Eclipse還有很長的路要走,。記得我說過集成開發(fā)環(huán)境往往體積較大并且需要更多的知識去正確使用,那么Eclipse正是如此并且就像一袋子小芯片一樣需要你逐一了解,。 Sublime Text網(wǎng)址:http://www. Sublime Text是一款非常流行的代碼編輯器,,其開發(fā)者是一名谷歌的工程師,其夢想是使之成為更好的文本編輯器,。Sublime Text支持Python代碼編輯同時兼容所有平臺,,并且豐富的插件(稱之為“包”)擴展了語法和編輯功能。 安裝額外的Python擴展可能會比較棘手,,Sublime Text中所有的包都是用Python寫成的,,并且安裝社區(qū)擴展往往需要直接在Sublime Text中執(zhí)行Python腳本。 優(yōu)點:Sublime Text在編程社區(qū)內(nèi)很受推崇,。單單從代碼編輯器的角度來看,,Sublime Text迅捷小巧并且具有良好的兼容性。 缺點:盡管你可以無限期的使用測試版本但是Sublime Text不是免費軟件,。在Sublime Text中安裝擴展插件可能會比較棘手,,另外并不支持直接在編輯器內(nèi)部執(zhí)行或調(diào)試代碼。 為了充分利用Sublime Text設(shè)置,,你可以閱讀我們的Python+Sublime Text設(shè)置指南,,或者觀看我們更深層次的視頻教學,,這會幫助你在Sublime Text 3中建立一個高效的Python開發(fā)環(huán)境。 Atom網(wǎng)址:https:/// 同樣兼容所有平臺的Atom被稱為是“21世紀可破解的文本編輯器”,。開源的Atom擁有時尚的界面,、文件系統(tǒng)瀏覽器和擴展插件市場,它是使用Electron構(gòu)建的,,Electron使用JavaScript,、HTML和CSS構(gòu)建跨平臺的桌面應(yīng)用。Python語言由一款可在Atom運行時安裝的擴展插件支持,。 優(yōu)點:得益于Electron,,Atom廣泛兼容各大平臺。同樣Atom小巧且下載和載入都非常迅速,。 缺點:內(nèi)置并不支持構(gòu)建和調(diào)試,,這些功能是由社區(qū)提供支持的。同樣由于Atom建立在Electron框架上,,所以它始終運行在JavaScript進程中而不是作為本地應(yīng)用運行,。 GNU Emacs網(wǎng)址:https://www./software/emacs/ 讓我們回到iPhone和Android之戰(zhàn)前,在Linux和Windows的戰(zhàn)爭之前甚至是在PC和Mac的戰(zhàn)爭前,,有一場“編輯器之戰(zhàn)”,。而GNU Emacs就是戰(zhàn)斗中的一員。伴隨著狂熱的追隨,,被稱作“可擴展,、可定制、自動記錄,、實時顯示的編輯器”GNU Emacs幾乎一直縈繞在UNIX周圍,。 終身免費且兼容任何平臺(以某種形式),GNU Emacs使用強大的Lisp編程語言進行定制,,并為Python開發(fā)提供各種定制腳本,。 優(yōu)點:了解了 Emacs,使用過 Emacs,,你便會愛上 Emacs,,Lisp作為第二語言,你清楚它給你的力量可以讓你為所欲為,。 缺點:定制化意味著向多種多樣的腳本文件中編寫(或復(fù)制粘貼)Lisp,,如果沒有他人提供,那么你必須去學習Lisp并且搞懂它是如何運行的,。另外,,Emacs是一款非常優(yōu)秀的操作系統(tǒng),如果它僅僅被當作一款優(yōu)秀的文本編輯器.... 請務(wù)必參考我們的Python + Emacs設(shè)置指南來進行設(shè)置。 VI/VIM網(wǎng)址:https://www./ 在文本編輯器戰(zhàn)場另一側(cè)是VI(又名VIM),,默認安裝在幾乎每一個UNIX系統(tǒng)和Mac OS X系統(tǒng)中,VI有著同樣的狂熱追隨,。VI和VIM是一種模型編輯器,它將文本查看從文本編輯中分離,。VIM在原始VI之上做了諸多改進,,包括可擴展模型和就地代碼構(gòu)建。VIMScripts可用于各種Python開發(fā)任務(wù),。 優(yōu)點:了解了VI,,使用過 VI,你也會愛上 VI,。VIMScripts并不會嚇退你,,并且你可以按你的意愿去做。 缺點:就像Emacs一樣,,你可能并不適應(yīng)為了支持Python開發(fā)環(huán)境自行查找或者撰寫腳本,,此外你可能并不清楚模型編輯器是如何工作的。另外,,VI是一款不錯的文本編輯器當且僅當它擁有一個出色的操作系統(tǒng),。 如果您要使用這種組合,請參閱我們的Python + VIM安裝指南,,我們將為您提供提示和插件建議,。 Visual Studio類型:集成開發(fā)平臺 網(wǎng)址:https://www./vs/ Python工具:Python Tools for Visual Studio, 也稱PTVS 與Eclipse進行多方面比較,由Microsoft建立的Visual Studio是一款全功能集成開發(fā)平臺,。VS僅兼容Windows和Mac OS系統(tǒng),,它既提供了免費版(社區(qū)版)也提供了付費版(專業(yè)版和企業(yè)版)。VS支持各種平臺的開發(fā),,并且附帶了自己的擴展插件市場。 Python Tools for Visual Studio (又名PTVS)實現(xiàn)了在VS中進行Python編程并且支持Python智能感知,、調(diào)試和其他工具,。 優(yōu)點:就像Eclipse一樣,如果你已經(jīng)因為其他開發(fā)程序安裝了VS那么添加PTVS時非常便捷的,。 缺點:和Eclipse相同如果僅僅為了Python,,那么VS是一個大型下載任務(wù)。另外如果你是Linux系統(tǒng),,那你并不走運,,因為VS并不支持Linux平臺。 Visual Studio Code網(wǎng)址:https://code./ Python工具:https://marketplace./items?itemName=ms-python.python 不要與完全版的VS混淆,Visual Studio Code(也稱作VS Code)是一款兼容Linux,Mac OS X和Windows 平臺的全功能代碼編輯器,。麻雀雖小但五臟俱全,,VS Code開源,、可擴展并且可以對幾乎所有任務(wù)進行配置,。就像Atom一樣,VS Code建立在Electron基礎(chǔ)之上,,因此它具有相同的優(yōu)點和缺點,。 在VS Code中安裝Python支持插件非常簡單,它的市場是一個快速點擊按鈕,。只需要搜索Python,,點擊安裝然后必要的時候重新啟動,VS Code就會自動識別你的Python安裝和庫,。 優(yōu)點:同樣歸功于Electron,VS Code支持所有開發(fā)平臺,,同樣令人驚喜的是小巧的體格卻蘊含了豐富的功能,同時它也是開源的,。 缺點:Electron的使用意味著VS Code不是本地應(yīng)用,。另外,有些人可能從原則上并不使用Microsoft資源,。 Python專用的編輯器和集成開發(fā)環(huán)境PyCharm網(wǎng)址:https://www./pycharm/ PyCharm是最好的一個(也是唯一一個)專門面向于Python的全功能集成開發(fā)環(huán)境。同樣擁有付費版(專業(yè)版)和免費開源版(社區(qū)版),,PyCharm不論是在Windows, Mac OS X系統(tǒng)中, 還是在Linux系統(tǒng)中都支持快速安裝和使用,。 開箱即用,PyCharm直接支持Python開發(fā)環(huán)境,,打開一個新的文件然后就可以開始編寫代碼,。你也可以在PyCharm中直接運行和調(diào)試Python程序,并且它支持源碼管理和項目,。 優(yōu)點:這是真正的Python集成開發(fā)環(huán)境,擁有眾多便利和支持社區(qū),。它的編輯,、運行和調(diào)試功能統(tǒng)統(tǒng)開箱即用,。 缺點:PyCharm存在加載較慢的問題,,另外對于已有的項目,默認設(shè)置可能需要調(diào)整,。 Spyder網(wǎng)址:https://github.com/spyder-ide/spyder Spyder是一款為了數(shù)據(jù)科學工作流做了優(yōu)化的開源Python集成開發(fā)環(huán)境。它是附在Anaconda軟件包管理器發(fā)行版中的,,因此根據(jù)你的設(shè)置,,或許你已經(jīng)在機器中安裝了Spyder。 Spyder引人注目的一點是其目標受眾是使用Python的數(shù)據(jù)科學家們,。你一定會留意到這一點,舉個例子來說,,Spyder很好的集成了一些諸如SciPy,、NumPy和Matplotlib這樣的公共Python數(shù)據(jù)科學庫。 Spyder擁有大部分你所期待的集成開發(fā)環(huán)境該具備的功能,,例如具備強大語法高亮功能的代碼編輯器,,Python代碼補全,甚至是集成文件瀏覽器,。 我從未在其他Python編輯環(huán)境中見過的一個特殊功能是Spyder的“變量瀏覽器”功能,,它會以表格形式出現(xiàn)在集成開發(fā)環(huán)境界面右側(cè)來展示數(shù)據(jù),。就我個人來說,,雖然我并不十分需要這個功能,,但是它看起來的確很整潔,。如果你是一位日常用Python做數(shù)據(jù)科學工作的人,那你一定會深深愛上這個獨特的功能,。Spyder關(guān)于IPython或者說Jupyter的集成也做得非常好。 總之,,我認為Spyder比其他的集成開發(fā)環(huán)境更基本,我更愿意把它看做是一款專業(yè)工具而不是我日常使用的編輯環(huán)境,。關(guān)于Spyder比較優(yōu)秀的一點是它兼容Windows、macOS和 Linux系統(tǒng)并且是一個完全開源軟件,。 優(yōu)點:當你是使用Anaconda Python發(fā)行版的數(shù)據(jù)科學家時你會愛上它,。 缺點:更有經(jīng)驗的Python開發(fā)人員可能會覺得Spyder太基本了以至于不能支持每日所需的基本工作,,這樣的話還不如選擇一個更為完整的集成開發(fā)環(huán)境或者定制編輯器解決方案,。 Thonny網(wǎng)址:http:/// 作為Python集成開發(fā)環(huán)境大家庭中的新成員,,Thonny被稱作是針對新手的一款集成開發(fā)環(huán)境。由愛沙尼亞塔爾圖大學的計算機科學學院開發(fā)并維護的Thonny適用于全部主流平臺,,并且在網(wǎng)站上附有安裝指南,。 默認情況下,Thonny會和自帶捆綁的Python版本一起安裝,,所以你不需要再安裝什么新的東西,。更有經(jīng)驗的老手可能需要調(diào)整這個設(shè)置以便找到和使用已安裝的庫。 優(yōu)點:你是一名Python新人小白,,并且一切就緒需要一款集成開發(fā)環(huán)境的時候你會選擇它,。 缺點:更有經(jīng)驗的Python老手可能會覺得Thonny同樣太基礎(chǔ)了,并且其內(nèi)置解釋器只是一個工作場合,,而不是一個可以與之共事的工具,。此外,作為一款新興工具,,你在遇到問題時很有可能發(fā)現(xiàn)沒有現(xiàn)成的解決方法,。 哪一個是為你量身定做的?只有你自己可以決定中意哪一款,,但是還是有一些基本建議:
英文原文:https:///blog/python/python-ides-code-editors-guide/ |
|