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