Python的開發環境與實用工具

Python的各種實用工具,大致可以分爲包管理、環境管理、編輯相關(代碼補全、snippet等)、調試工具(集成開發環境)、筆記本構建工具Jupyter。

接下來就介紹下我常用的工具吧。

1. Pip

Pip一定是每位python開發者都經常使用的工具,它是強大的包管理工具。與conda相比,pip的pypi倉庫提供的安裝包的數量要多得多。之前也寫過幾篇關於pip的文章,在此做一下整理:
(1) 樹莓派上多版本python及pip安裝使用管理指南:樹莓派是我常用的設備,因此很早寫了這麼一篇文章,來介紹python和pip在樹莓派上的使用,其中還介紹了安裝位置、源修改等技巧。
(2) python環境部署(一) —— pip依賴遷移: python在跨設備尤其還跨平臺的情況下的環境部署有些麻煩,所以介紹下有哪些工具/方法可以更便捷地進行環境部署。姊妹篇:python環境部署(二) —— conda環境遷移

2. virtualenv與virtualenvwrapper

關於python的一衆環境管理工具,StackOverflow上有一個回答:What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc? 說明了他們之間的區別。建議各位不要去深究他們實際使用時的細微區別,太浪費時間了。

我最常用virtualenv和virtualenvwrapper,如果疊加多python版本管理需求的,可以考慮pyenv, pyenv-virtualenv, pyenv-virtualenvwrapper。

3. Anaconda/Miniconda

Anaconda/Miniconda提供包管理工具conda與環境管理工具,功能上是比較完整的,用戶也很多,用不用全憑個人習慣了。我個人使用中遇到的一些小問題:
(1)我的常用設備除Windows、Linux服務器(X86架構)外還有樹莓派(arm架構),樹莓派上可安裝的conda版本老舊,命令與Windows和Linux上當前版本不同,因此使用上會有困擾;
(2)一些包在conda源裏並沒有發佈,造成有時候必須用pip進行安裝的情況,那麼此時環境中實際上就用了pip和conda兩種包管理工具了,當不小心用pip刪除conda安裝的包或者用conda刪除了pip安裝的包後,麻煩就來了。
(3)使用conda list會發現有不少不需要的包(即使是Linux安裝的Miniconda),給人環境十分臃腫的感覺,還是用pip簡潔些。

事實上,我不是很喜歡Anaconda/Miniconda,主要還是覺得臃腫,但是有時候偷懶,Anaconda/Miniconda用起來前期要做的工作更少些,又大多是部署在服務器上,禁得起折騰,也就用了(😅)。

4. VS Code + 一衆Extensions

VS Code的優勢就不多說了,雖然運行時佔用的內存也不小,但是功遠大於過。

我常用的擴展:
Python extension for Visual Studio Code:必不可少的python官方擴展
Kite:功能超強的自動代碼補全
Bracket Pair Colorizer:給各種括號以不同的顏色區分,寫代碼時看的更清楚

另外VS Code提供snippets功能,可以參考:使用VScode的代碼片(snippets) 進行使用。

5. PySnooper

使用PySnooper可以極大地提高調試python程序的效率。
一個教程:極簡Python DeBug工具——PySnooper

6. Jupyter

因爲樹莓派一直都開機着,我在樹莓派上部署了Jupyter Lab服務,平時有很簡短的代碼要測試,或者做些demo的話,就會在這上面完成。Jupyter確實很適合於做一些代碼示例和學習筆記。部署很簡單,不留教程了。

7. IDE

我確實不怎麼用IDE,因爲我做的項目都不算龐大,調試起來也相對容易。一般來說,VS Code配以豐富的插件足以滿足代碼編輯方面的需求,簡單的調試我會使用Jupyter服務器,其他調試我會在服務器的shell中進行。
我試用過的IDE:
(1) Spyder:早期用過,有variable explorer,適合數據分析,除此外好像沒啥特別的了。
(2) PyCharm:我用起來實在卡,就沒細探索了,據說調試大型工程好用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章