世界上最好的 Python 編輯器或 IDE 是什麼?炫酷的界面、流暢的體驗,我們投 PyCharm 一票,那麼你呢?本文介紹了 PyCharm、Jupyter Notebook 和 Spyder 在内的 5 種主流 Python IDE,每一種都各有優缺點。不過結合經驗教訓,不論是純文字編輯器還是內建開發環境,總有一款是你的最愛,那麼快在文末為你最愛的 IDE 投上一票吧。
1991 年,Guido van Rossum 建立了 Python 并釋出了第一個版本。這種解釋型進階程式設計語言為通用程式設計而開發。Linux、MacOS 和 Windows 等作業系統中都有 Python 解釋器。
經過近 30 年的發展,Python 已成為程式設計社群極受歡迎的語言。使用 IDLE 或 Python Shell 寫 Python 編碼适用于小型項目,但無法應對成熟的機器學習或資料科學項目。
在這種情況下,你需要使用一個 IDE(內建開發環境)或專用的代碼編輯器。由于 Python 是最流行的程式設計語言之一,IDE 的選擇也非常多。那麼問題來了:「究竟什麼樣的 IDE 最适合 Python?」
很明顯,沒有哪一個 IDE 或代碼編輯器可以稱得上是「最好」的 Python IDE 或編輯器。這是因為它們各有優劣。此外,從為數衆多的 IDE 中進行挑選實在太浪費時間。
但不用擔心,本文已經為你整理好了。為了幫助你做出正确的選擇,本文将介紹幾種最适合 Python 的 IDE,專門用于處理資料科學項目。
Atom
● 平台:Linux/macOS/Windows
● 官網:https://atom.io/
● 類型:通用文本編輯器

Atom 是一種免費的開源文本及源代碼編輯器,适用于 Java、PHP、Python 等多種程式設計語言。該文本編輯器支援用 Node.js 寫成的插件。盡管 Atom 适用于多種語言,但它對 Python 情有獨鐘,其有趣的資料科學特性非常适合 Python。
Atom 的最大特點之一是支援 SQL 查詢,但你需要安裝 Data Atom 插件才能擷取該特性。它支援 Microsoft SQL Server、MySQL 及 PostgreSQL。而且,你還可以可視化 Atom 的結果,無需打開其他任何視窗。
可以幫助 Python 資料科學家的另一個 Atom 插件是 Markdown Preview Plus。它可以為編輯、可視化 Markdown 檔案提供支援,讓你可以預覽、渲染 LaTeX 公式等。
優點:
● 活躍的社群支援
● 與 Git 的完美內建
● 為管理多個項目提供支援
缺點:
● 在較老的 CPU 上運作可能會出現性能問題
● 可能遇到遷移問題
Jupyter Notebook
● 官網:https://jupyter.org/
● 類型:基于 Web 的 IDE
Jupyter Netbook 起源于 2014 年的 Ipython,它是一種基于伺服器-用戶端結構的網頁應用。Jupyter Netbook 允許我們通過「Notebook」建立和操作代碼檔案,并且采用一種即時運作的方法,這是 Jupyter Notebook 最重要的特性。對于 Python 資料科學家而言,Jupyter Notebook 基本上是必需品,因為它提供了最直覺、最精煉的互動式資料科學環境。
對于剛入門的資料科學家而言,Jupyter 是最簡單也最完美的工具。我們在寫完一個代碼片段後就能直接運作這些局部代碼檢視效果,是以它的互動效果是最好的。此外,Jupyter Notebook 中的單元可以選擇代碼或者文檔,也就是說選擇文檔後可以直接按照 MarkDown 的文法寫代碼或整個檔案的注釋、心得和背景知識等。
通過使用 Matplotlib 和 Seaborn 等可視化工具,我們可以直接在代碼單元下輸出想要的可視化圖資訊。當然我們也可以将整個 Notebook 檔案導出為 PDF、HTML 或純 Python 代碼檔案,這非常有利于檔案在不同平台間的傳播,是以像谷歌的 Colab 等平台也都預設使用 Notebook 的這種形式。與 Ipython 一樣,Jupyter Notebook 是一系列項目的總稱,包括 Notebook、Console 和 Qt console 等。
● 允許使用 Notebook 直接建立部落格或代碼示範
● 確定可複現的研究與解釋
● 在運作整體前可以運作并修正局部代碼塊
● 複雜的安裝過程(你也可以直接安裝內建開發環境 Anoconda~)
PyCharm
● 官網:https://www.jetbrains.com/pycharm/
● 類型:Python 專用 IDE
PyCharm 是 Python 的專用 IDE,地位類似于 Java 的 IDE Eclipse。功能齊全的內建開發環境同時提供收費版和免費版,即專業版和社群版。PyCharm 是安裝最快的 IDE,且安裝後的配置也非常簡單,是以 PyCharm 基本上是資料科學家和算法工程師的首選 IDE。
對于喜歡 IPython 或 Anaconda 發行版的人而言,PyCharm 同樣可以便捷地內建 Matplotlib 和 NumPy 等工具,這意味着我們在處理資料科學項目時可以便捷地使用數組檢視器和互動式圖表等。除此之外,IDE 還擴充了對 JavaScript 和 Angular JS 等語言的支援,這使得它同樣也适合 Web 端的開發。
安裝完成後,我們可以快速建立一個 Python 項目,并選擇解釋器和新的代碼檔案。可能我們會用 conda 等工具維護不同的環境,例如 TensorFlow 或 PyTorch 等,在建立新項目時隻需要選擇這些環境下的 Python 主程式就相當于選擇了新環境。最後,除了提供直接 debug 和運作功能外,PyCharm 還提供對源代碼和項目控制的支援。
● 支援全面的 Python 開發,不論是資料科學還是非資料科學項目
● 新手和老兵都易于使用
● 快速 Reindexing
● 運作、編輯、debug Python 代碼都不需要額外的支援
● 加載可能比較慢
● 使用現有項目前可能需要調整預設設定
Redeo
● 官網:https://rodeo.yhat.com/
Redeo 的 logo 就暗示了這個 IDE 是專門為資料分析而開發的,如果用過 RStudio,你就會發現 Redeo 與它有很多相似的特征。對于那些不了解 RStudio 的人而言,你們隻需要知道它是最流行的 R 語言內建開發環境。與 RStudio 一樣,Rodeo 的視窗分為四部分,即代碼文本編輯器、控制台、變量可視化環境和圖形/庫/檔案的檢視視窗。有意思的是,RStudio 和 Redeo 都與 MATLAB 有很多相似之處。
Redeo 的最大優勢在于新手和老兵都能友善地使用。由于 Redeo 允許在寫代碼的同時檢視變量和可視化等細節,它可以稱得上是最好的資料科學 IDE 之一。此外,Redeo 還有内置的課程及輔助材料。
● 大量定制化設計
● 實時監控代碼到底建立了些什麼
● 通過自動補全和文法高亮,寫代碼會更快
● 有很多 Bug
● 社群支援不是很多
● 記憶體問題
Spyder
● 官網:https://www.github.com/spyder-ide/spyder
Spyder 是 Python 專用的一種開源 IDE,其獨特之處在于專為資料科學工作流程進行了優化。它與 Anconda 軟體包管理器捆綁在一起,後者是 Python 程式設計語言的标準發行版。Spyder 擁有所有必需的 IDE 特性,包括代碼完整性及內建檔案浏覽器。
Spyder 專為資料科學項目建立,具備平滑的學習曲線,即學即會。線上幫助選項允許使用者在并行開發項目的同時尋找關于庫的專門資訊。而且,這個 Python 專用 IDE 與 RStudio 類似。是以,在從 R 切換到 Python 時這是一個恰當的選擇。
适用于 Python 庫的 Spyder 內建支援(如 Matplotlib 和 SciPy)進一步證明,Spyder 是為資料科學家量身打造的。除了可感覺的 IPython/Jupyter 內建之外,Spyder 還有一個獨特的「variable explorer」特性,允許使用基于表格的布局展示資料。
● 代碼完備性和變量探索
● 易用性
● 資料科學項目的理想工具
● 界面整潔
● 不适用于非資料科學項目
● 對于高階 Python 開發者而言太基礎了
如何為 Python 選擇理想的 IDE?
這完全取決于你的需求。以下是幾點建議:
● 如果你剛開始使用 Python,找一個定制化較少、附加功能也較少的 IDE。幹擾越少,上手越容易。
● 将這些 IDE 功能與你的期望進行對比。
● 多嘗試幾種 IDE 就會知道哪一種最适合你的需求。
原文釋出時間為:2018-11-20
本文來自雲栖社群合作夥伴“
機器學習算法與Python學習”,了解相關資訊可以關注“
”。