Python IDEs 常見的整合開發環境介紹

Python IDEs

俗語說  ”工欲善其事,必先利其器 ” 。
所以在撰寫 python 程式時,挑選好的開發工具 Python IDEs 是蠻重要的一件事情。其實 Python官方的安裝包裡面含有 IDLE,已經是個麻雀雖小五臟俱全的IDE了,對於初學的人其實已經蠻夠用了。
但如果能了解有哪些不錯的IDEs,對於我們未來撰寫功能更複雜的大型專案,或是有資料科學領域上的需求就能使用更方便、更合適的工具,對於開發效率上也能有所提升。

以下介紹一些 Python 常見的 IDEs (Integrated Development Environment):

Spyder

如果有安裝過 Anaconda distribution 版本的話,應該會知道Spyder。Spyder整合了NumPy,SciPy,Matplotlib 與 IPython,以及其他開源軟體。
  • 編輯器:支援多語言,具有函式和類檢視器,代碼分析特性(pyflakes 和 pylint 獲得了支援),代碼補全,水平與垂直視窗的分離,直接跳入定義等等。
  • 互動埠: Python 或 IPython 埠都在工作區可以調整和使用。支援對編輯器里的代碼直接偵錯。此外整合了 Matplotlib 的圖表顯示。
  • 文件瀏覽器:在編輯器或埠中顯示任意類或函式呼叫的文件。
  • 可變的瀏覽窗口:在檔案的執行過程中可以建立可變的瀏覽窗口。同時也可以對其進行編輯。
  • 在檔案中尋找:支援正規表示式與 Mercurial 倉庫
  • 檔案瀏覽器
  • 歷史記錄

Jupyter Notebook

Python IDEs - jupyter notebook

與Spyder一樣,被包含在 Anaconda distribution 的版本之中,若要獨立使用 pip 安裝亦可。
透過網頁介面,可以將程式碼寫在不同的 Cell (區塊) 之中,並且分段落執行,已執行過的程片段會存在記憶體中,所以對於調整參數或是做測試來說,相當的方便,比如有時候想要看變數的值,直接開個 Cell 印出來看就好了
  • 支援超過 40 種程式語言,比如 Python、R,、Julia 與 Scala
  • 可以透過 email、Dropbox、GitHub 或是 Jupyter Notebook Viewer 與他人分享 Notebook
  • 可以顯示多媒體資源,比如圖片、影片、LaTeX 甚至是JavaScript,也可以做 realtime 的資料視覺化
PS1. 微軟的 Azure Notebooks 就是使用 Jupyter Notebook。目前提供免費的線上開發服務,若還沒安裝本機端 IDE,但是想先體驗看看 Jupyter Notebook 也可以直接登入用看看。
PS2. 之前有寫一篇使用 Python 擷取 AQI 空氣品質資料的範例,就是在 Azure Notebooks 這個服務上寫的。 範例程式

PyCharm

https://www.jetbrains.com/pycharm/

PyCharm是由捷克公司JetBrains開發。提供代碼分析、圖形化調試器,集成測試器、集成版本控制系統(Vcs),並支持使用Django進行網頁開發。
是一套功能非常完善也強大的跨平台開發的環境。
主要功能:
  • 代碼分析與輔助功能,擁有補全代碼、高亮語法和錯誤提示;
  • 項目和代碼導航:專門的項目視圖,文件結構視圖和和文件、類、方法和用例的快速跳轉;
  • 重構:包括重新命名,提取方法,引入變量,引入常量、pull,push等;
  • 支持網絡框架: Django, web2py 和 Flask;
  • 集成Python 調試器;
  • 集成單元測試,按行覆蓋代碼;
  • Google App Engine下的Python開發;
  • 集成版本控制系統:為Mercurial, Git, Subversion, Perforce 和 CVS提供統一的用戶界面,擁有修改以及合併功能。

PyDev

PyDev 是 Eclipse 的 插件 plugin,若有使用過 Eclipse寫過 Java 或是開發過 Android  很習慣在Eclipse上面開發程式的話,
可以考慮安裝 PyDev 來開發 Python 程式,當然其功能也是相當完整。

Visual Studio

微軟出的 Visual Studio 應該非常多人聽過也用過,也支援Python的程式語言開發
若有使用過 Visual Studio 開發過 C#、VB.NET、ASP.NET 等相關微軟平台上的程式專案開發的話,那麼在這個介面上開發 Python 程式或許也是個不錯的選擇。

結語

當然還有非常多不錯的 Python IDEs 沒有列舉出來,待之後有時間再補上來。