世界上最好的 Python 編輯器或 IDE 是什么?炫酷的界面、流暢的體驗,機器之心投 PyCharm 一票,那么你呢?本文介紹了 PyCharm、Jupyter Notebook 和 Spyder 在內的 5 種主流 Python 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
平臺:Linux/macOS/Windows
官網: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
平臺:Linux/macOS/Windows
官網: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
平臺:Linux/macOS/Windows
官網:https://rodeo.yhat.com/
類型:Python 專用 IDE
Redeo 的 logo 就暗示了這個 IDE 是專門為數據分析而開發的,如果用過 RStudio,你就會發現 Redeo 與它有很多相似的特征。對于那些不了解 RStudio 的人而言,你們只需要知道它是最流行的 R 語言集成開發環境。與 RStudio 一樣,Rodeo 的窗口分為四部分,即代碼文本編輯器、控制臺、變量可視化環境和圖形/庫/文件的查看窗口。有意思的是,RStudio 和 Redeo 都與 MATLAB 有很多相似之處。
Redeo 的最大優勢在于新手和老兵都能方便地使用。由于 Redeo 允許在寫代碼的同時查看變量和可視化等細節,它可以稱得上是最好的數據科學 IDE 之一。此外,Redeo 還有內置的課程及輔助材料。
優點:
大量定制化設計
實時監控代碼到底創建了些什么
通過自動補全和語法高亮,寫代碼會更快
缺點:
有很多 Bug
社區支持不是很多
內存問題
Spyder
平臺:Linux/macOS/Windows
官網:https://www.github.com/spyder-ide/spyder
類型:Python 專用 IDE
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 就會知道哪一種最適合你的需求。