dwSun帶你選Python的編輯器/IDE
Python 是一門簡(jiǎn)單易學(xué),同時(shí)又十分強(qiáng)大的編程語(yǔ)言。特別是隨著人工智能的熱潮,Python作為AI開發(fā)的首選語(yǔ)言,已經(jīng)是技術(shù)人員的必備技能。
在學(xué)習(xí)和開發(fā)的過(guò)程當(dāng)中,一款趁手的編輯器/IDE猶如神兵利器,必能讓使用者效率飛升,事半功倍。
這里列舉一些常用的編輯器/IDE,按照dwSun認(rèn)為的推薦度排序。
IDLE
沒得說(shuō),Python自帶的IDE,裝好Python之后直接就有,也是絕大多數(shù)人首次使用的IDE。
- 優(yōu)點(diǎn):安裝方便,使用簡(jiǎn)單,基本的功能都有
- 缺點(diǎn):功能太少,語(yǔ)法高亮不好使,代碼提示很糟糕
- 注意事項(xiàng):安裝Python的時(shí)候,需要選擇安裝IDLE,如果沒注意,可能就沒有了。
spyder

第一款推薦的是一個(gè)比較小眾的IDE,但是絕對(duì)值得嘗試,因?yàn)檫@貨對(duì)標(biāo)的是matlab,有matlab使用經(jīng)驗(yàn)的朋友肯定對(duì)matlab的IDE印象深刻。而spyder的界面也跟matlab的極其相似,變量空間,命令行,代碼區(qū),文件區(qū)一應(yīng)俱全,特別是命令區(qū)直接支持ipython,可以跟編輯器里面的代碼直接交互。
- 優(yōu)點(diǎn):功能強(qiáng)大而全面,對(duì)標(biāo)matlab,圖像繪制,數(shù)據(jù)分析等功能整合較方便。
- 缺點(diǎn):界面比較復(fù)雜,新手可能會(huì)無(wú)從下手。安裝也比較復(fù)雜。偶爾會(huì)崩潰。
- 注意事項(xiàng):代碼默認(rèn)位置是一個(gè)臨時(shí)目錄。運(yùn)行代碼的時(shí)候,可以選擇在哪個(gè)kernel運(yùn)行,不選的話默認(rèn)重開一個(gè)。
PyCharm

JetBrains出品的IDE,沒錯(cuò)就是那個(gè)在java開發(fā)領(lǐng)域用IntelliJ IDEA干死了Eclipse的JetBrains。PyCharm支持包括但不限于debug、語(yǔ)法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。相當(dāng)多的使用者反映PyCharm極其趁手,特別是從Java領(lǐng)域轉(zhuǎn)過(guò)來(lái)的親們。
- 優(yōu)點(diǎn):功能全面而強(qiáng)大,智能提示功能媲美Java的IDE。
- 缺點(diǎn):PyCharm自身是用Java寫的,占用資源龐大,機(jī)器不好容易卡頓。適合Web項(xiàng)目等大型項(xiàng)目開發(fā),對(duì)數(shù)據(jù)科學(xué)不是很友好。
- 注意事項(xiàng):整個(gè)IDE都是遵循Java的哲學(xué),跟Python的套路不太一樣。
JupyterLab

注意這個(gè)不是Jupyter Notebook,據(jù)官方的說(shuō)法,JupyterLab是Jupyter Notebook的下一代產(chǎn)品,兩者在文件格式等方面是兼容的。dwSun的使用經(jīng)驗(yàn),兩者在處理ipynb上是完全一樣的。但是jupyterlab支持命令行等,而且文件瀏覽也更方便,比起notebook側(cè)重展示和交互,jupyterlab更像一個(gè)功能完整的IDE了。
- 優(yōu)點(diǎn):全兼容Jupyter Notebook,可以在線使用命令行,文件組織更方便,功能更強(qiáng)大。
- 缺點(diǎn):即使發(fā)布已經(jīng)有段時(shí)間了,整個(gè)生態(tài)還是不太完整,沒有太多可用的插件,使用上不太方便。
- 注意事項(xiàng):跟Jupyter Notebook的插件系統(tǒng)完全不兼容,如果你的ipynb格式內(nèi)使用了一些擴(kuò)展插件,那么在JupyterLab上渲染可能有問(wèn)題。
Jupyter Notebook

Jupyter及iPython項(xiàng)目的產(chǎn)物,數(shù)據(jù)科學(xué)首選,著重于展示和交互,號(hào)稱可以運(yùn)行的PPT。
Jupyter系列的IDE不是專門針對(duì)Python語(yǔ)言的,也可以運(yùn)行R等語(yǔ)言。
優(yōu)點(diǎn):數(shù)據(jù)科學(xué)領(lǐng)域的標(biāo)配及事實(shí)標(biāo)準(zhǔn),不會(huì)用就out了。展示功能方便而強(qiáng)大,非常適合數(shù)據(jù)分析展示。強(qiáng)大的插件系統(tǒng)和功能豐富的插件生態(tài)?;赪eb,可以遠(yuǎn)程使用。
缺點(diǎn):代碼碎片化嚴(yán)重,文件管理功能比較弱,不太適合大型項(xiàng)目。默認(rèn)的代碼提示和高亮不太人性化。
注意事項(xiàng):因?yàn)槭腔赪eb的,所以編輯的文件處理的數(shù)據(jù)等全部都是在Jupyter的host機(jī)器上,不是在瀏覽器所在的本地。插件用起來(lái)方便,但是配置比較復(fù)雜,不太適合新手折騰。
Atom
Atom就不用說(shuō)了,github官方出品的編輯器,一幫大牛們合作的產(chǎn)品,值得期待。dwSun自己用的也是Atom。
這里介紹的是python的編輯器/IDE,atom自身的python支持還是比較弱的,所以需要通過(guò)一些插件增強(qiáng)其功能,這里介紹兩個(gè)我自己在用的插件。
- 優(yōu)點(diǎn):github官方出品,功能豐富,插件生態(tài)龐大。
- 缺點(diǎn):配置較復(fù)雜,對(duì)新手不是很友好,默認(rèn)安裝之后,只能作為編輯器使用。資源占用有時(shí)候比較高,界面不是很流暢,對(duì)機(jī)器硬件配置要求較高。
- 注意事項(xiàng):雖然是GUI的程序,但是很多功能都要使用命令或編輯配置文件,對(duì)使用者要求較高。
Hydrogen
[圖片上傳失敗...(image-b54230-1550033560535)]
nteract參考jupyter實(shí)現(xiàn)的一個(gè)功能強(qiáng)大的交互式編輯器,可以直接在編輯器里面運(yùn)行代碼并查看結(jié)果,像jupyter一樣。
- 優(yōu)點(diǎn):基本具備jupyter的全部功能,同時(shí)可以使用atom的各種插件來(lái)完成代碼提示,高亮等等,魚與熊掌可以兼得。
- 缺點(diǎn):只能保存為py文件,任何中間運(yùn)行結(jié)果不能保存,也不能解析ipynb文件,只適合臨時(shí)使用,不太適合PPT展示等場(chǎng)景。
- 注意事項(xiàng):其后臺(tái)使用的是跟Jupyter一樣的iPython接口,也支持遠(yuǎn)程功能,所以遠(yuǎn)程功能編輯的文件,除了當(dāng)前在編輯器里面的文件之外,其他引用的文件,數(shù)據(jù)等也都必須放在遠(yuǎn)程機(jī)器對(duì)應(yīng)的執(zhí)行目錄下面。需要額外配置iPython kernel,參考文檔進(jìn)行配置即可。
ide python
Atom的另一個(gè)擴(kuò)展,跟facebook出品的Atom-IDE配合使用,是一個(gè)比較完整的IDE。
- 優(yōu)點(diǎn):完整的python開發(fā)環(huán)境,包括debug功能,可以使用atom其他插件提供的代碼提示高亮等等。
- 缺點(diǎn):不是很成熟,后臺(tái)使用python language server提供實(shí)時(shí)代碼分析,性能不太好,經(jīng)常卡頓。
- 注意事項(xiàng):python language server需要額外安裝并配置。
VSCode

微軟提供的,基于Atom定制的編輯器,相比與原生Atom,添加了很多方便的功能,性能有了極大的優(yōu)化提升。插件生態(tài)龐大而豐富。
- 優(yōu)點(diǎn):微軟官方出品,品質(zhì)保證,功能豐富,使用方便。
- 缺點(diǎn):會(huì)搭配安裝一些其他軟件,微軟一貫風(fēng)格。對(duì)新手不太友好。
- 注意事項(xiàng):vscode的插件是獨(dú)立的生態(tài),跟atom是不互通的。vscode定位是一個(gè)編輯器,跟vsstudio定位為一個(gè)IDE不同。
Sublime Text

出現(xiàn)比較早的一個(gè)萬(wàn)能編輯器,功能強(qiáng)大,插件豐富。
- 優(yōu)點(diǎn):出現(xiàn)比較早,社區(qū)也比較龐大,有眾多使用者。插件生態(tài)龐大豐富,各種功能一應(yīng)俱全。
- 缺點(diǎn):由于歷史遺留問(wèn)題,包管理系統(tǒng)不是很完善,插件安裝比較復(fù)雜。對(duì)新手很不友好。
- 注意事項(xiàng):收費(fèi)的,雖然可以無(wú)限免費(fèi)試用。
Emacs
最強(qiáng)大的編輯器/IDE,不解釋。
- 優(yōu)點(diǎn):要啥有啥
- 缺點(diǎn):啥都得自己折騰
- 注意事項(xiàng):熱愛生活,珍愛生命,遠(yuǎn)離Emacs
與VIM排名不分前后,僅根據(jù)字母順序。
VIM
最強(qiáng)大的編輯器/IDE,不解釋。
- 優(yōu)點(diǎn):要啥有啥
- 缺點(diǎn):啥都得自己折騰
- 注意事項(xiàng):熱愛生活,珍愛生命,遠(yuǎn)離VI
與Emacs排名不分前后,僅根據(jù)字母順序。
總結(jié)
編輯器與IDE的區(qū)別,dwSun認(rèn)為,帶debug功能的為IDE,只有代碼提示,語(yǔ)法高亮之類功能的為編輯器。但是現(xiàn)在很多先進(jìn)的編輯器通過(guò)插件擴(kuò)展,也能實(shí)現(xiàn)debug,本文不加以嚴(yán)格區(qū)分。
dwSun從事的更多是數(shù)據(jù)分析,人工智能相關(guān),因此這里給出的編輯器/IDE可能不適合Web開發(fā)人員。
某些IDE我自己也沒用過(guò)或者太復(fù)雜,這里不做推薦,更詳細(xì)的列表請(qǐng)移步這里。
python2.x系列正在被社區(qū)安樂(lè)死,dwSun已經(jīng)完全遷移到python3.x系列了,所以不再介紹任何python2.x相關(guān)的東西。
這里介紹的IDE基本都跨Linux/Mac/Win,但是我手里沒有Mac,Win也懶得折騰,所以沒有仔細(xì)驗(yàn)證。
很多軟件建議用anaconda安裝,但是anaconda的安裝包太大了,dwSun建議用miniconda安裝,其安裝包要小很多,但是功能跟anaconda完全一樣,只是初始不帶那么多軟件。
編輯器/IDE不是功能越多越復(fù)雜越好,一開始選擇一個(gè)趁手的用著就可以,隨著經(jīng)驗(yàn)閱歷的提升,可以慢慢探索適合自己的編輯器/IDE,甚至自己開發(fā)一個(gè)。有的時(shí)候,你可能需要根據(jù)場(chǎng)景,配合幾個(gè)不同的編輯器/IDE一起用。
工欲善其事,必先利其器。但工具只是工具,關(guān)注自己要做的事情才是關(guān)鍵。
有些工具的安裝配置等需要比較好的網(wǎng)絡(luò)環(huán)境或者翻墻。