最近開始折騰 py,記錄下 Anaconda + VS Code 的開發(fā)環(huán)境配置。用 Anaconda 主要因為虛擬環(huán)境管理,可以方便地切換多個環(huán)境與 py 版本浇雹。安裝 Anaconda 后會推薦安裝 VSC,這樣應該是會自動配置的屿讽。不過我已經(jīng)提前裝了昭灵,只好手動來了。
Anaconda 安裝
一步步來就行了。 add to Path
默認是不選的虎锚,警告說選擇后會改變系統(tǒng)默認的 py 環(huán)境導致之前的某些程序出錯。因為我之前沒有安裝過 py 所以可以忽略這個警告衩婚。添加到環(huán)境變量就可以在 cmd 直接調(diào)用 python
和 conda
了窜护。
最后建議安裝 VS Code,取消勾選非春,手動配置柱徙。
啰嗦下 Anaconda 幾個常用命令吧:
# 創(chuàng)建環(huán)境
# 我conda版本=4.6.4 似乎新建環(huán)境默認不帶py解釋器,需要顯式指定 python
conda create -n 名字 [軟件包=version]
# 列出所有環(huán)境
conda env list
# 切換環(huán)境
activate 名字 # linux及bash下要加 source 前綴
# 刪除環(huán)境
conda remove -n 名字 --all
# 導出環(huán)境
conda env export > environment.yml
# 導入環(huán)境
conda env create -f environment.yml
# 安裝包
conda install 名字[=version]
# 查看包列表
conda list
# 刪除包
conda remove 名字
VS Code 配置
首先當然是要安裝官方的 python
插件奇昙,打開一個 py 插件會自動推薦你安裝护侮。更多 python 插件設置參見 官方文檔。
LINT
vsc 會推薦安裝 pylint
储耐,但是網(wǎng)友普遍說這東西太嚴格了心煩羊初,更加推薦 flake8
。這東西是一個 py 包不是 vs 插件什湘。因為 anaconda 有很多環(huán)境长赞,之間完全獨立。顯然在每個環(huán)境都裝一遍 flake8 不是個好主意闽撤,我們只裝一個然后讓 vsc 認準他得哆。
建議在默認的環(huán)境下安裝 conda install flake8
(conda deactivate
可回到默認環(huán)境),然后開始修改 vsc 配置:
// 禁用 pylint
"python.linting.pylintEnabled": false
// 啟用 flake8
"python.linting.flake8Enabled": true
// 設置 flake8 位置哟旗,默認在 Anaconda3/Scripts
// 這樣無論在哪個環(huán)境都會使用這一個
"python.linting.flake8Path": "~\\Anaconda3\\Scripts\\flake8"
要是配置后無效贩据,試試看執(zhí)行
pip install --ignore-installed flake8
,用 pip 再安裝一遍闸餐,具體原因未知饱亮。
格式化
vsc 會推薦安裝 autopep8
,但是這里使用谷歌的 yapf绎巨。
py 的大多數(shù)格式化程序近尚,例如 autopep8 和 pep8ify 只能優(yōu)化lint錯誤,這有一些明顯的局限性场勤。 例如符合 pep8 的代碼可能無法重新格式化戈锻,但這并不意味著是最佳格式。而 yapf 會讀取整個代碼并直接整體格式化它和媳。
建議在默認的環(huán)境下安裝 conda install yapf
格遭,然后開始修改 vsc 配置:
# 使用 yapf
"python.formatting.provider": "yapf",
// 設置 flake8 位置,默認在 Anaconda3/Scripts
// 這樣無論在哪個環(huán)境都會使用這一個
"python.formatting.yapfPath": "~\\Anaconda3\\Scripts\\yapf"
這樣我們就可以右鍵 -> 格式化文檔啦~
切換環(huán)境
需要注意的是 vsc 不會同步命令行中的虛擬環(huán)境留瞳。打開 py
文件后可以點擊左下角來切換不同的解釋器(虛擬環(huán)境)拒迅。或者按 ctrl+shift+p
打開控制臺,輸入 > python: select interpreter
來選擇璧微。另外 vsc 掃描環(huán)境需要一些時間作箍,左下角會提示 Python extension loading
,此時只能顯示緩存的環(huán)境來選擇前硫,稍等一會即可胞得。