使用VS Code進行Python編程
Visual Studio Code,簡稱 VS Code,是一個開源的文本編輯器,包含用于構(gòu)建和調(diào)試應(yīng)用程序的工具。安裝啟用 Python 擴展后,VS Code 可以配置成理想的 Python 開發(fā)工作環(huán)境。本文將介紹一些有用的 VS Code 擴展,并配置它們以充分提高 Python 開發(fā)效率。
如果你的計算機上還沒有安裝 VS Code,可以參考文章 在 Fedora 上使用 VS Code 來安裝。
在 VS Code 中安裝 Python 擴展
首先,為了更方便地在 VS Code 中進行 Python 開發(fā),需要從 VS Code 擴展商店中安裝 Python 擴展。
Python 擴展安裝完成后,就可以開始配置 Python 擴展了。
VS Code 通過兩個 JSON 文件管理設(shè)置:
- 一個文件用于 VS Code 的全局設(shè)置,作用于所有的項目
- 另一個文件用于特殊設(shè)置,作用于單獨項目
可以用快捷鍵 Ctrl+,
(逗號)打開全局設(shè)置,也可以通過 文件 -> ***項 -> 設(shè)置 來打開。
設(shè)置 Python 路徑
您可以在全局設(shè)置中配置 python.pythonPath
使 VS Code 自動為每個項目選擇最適合的 Python 解釋器。
// 將設(shè)置放在此處以覆蓋默認(rèn)設(shè)置和用戶設(shè)置。
// Path to Python, you can use a custom version of Python by modifying this setting to include the full path.
{
"python.pythonPath":"${workspaceRoot}/.venv/bin/python",
}
這樣,VS Code 將使用虛擬環(huán)境目錄 .venv
下項目根目錄中的 Python 解釋器。
使用環(huán)境變量
默認(rèn)情況下,VS Code 使用項目根目錄下的 .env
文件中定義的環(huán)境變量。 這對于設(shè)置環(huán)境變量很有用,如:
PYTHONWARNINGS="once"
可使程序在運行時顯示警告。
可以通過設(shè)置 python.envFile
來加載其他的默認(rèn)環(huán)境變量文件:
// Absolute path to a file containing environment variable definitions.
"python.envFile": "${workspaceFolder}/.env",
代碼分析
Python 擴展還支持不同的代碼分析工具(pep8、flake8、pylint)。要啟用你喜歡的或者正在進行的項目所使用的分析工具,只需要進行一些簡單的配置。
擴展默認(rèn)情況下使用 pylint 進行代碼分析。你可以這樣配置以使用 flake8 進行分析:
"python.linting.pylintEnabled": false,
"python.linting.flake8Path": "${workspaceRoot}/.venv/bin/flake8",
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": ["--max-line-length=90"],
啟用代碼分析后,分析器會在不符合要求的位置加上波浪線,鼠標(biāo)置于該位置,將彈窗提示其原因。注意,項目的虛擬環(huán)境中需要安裝有 flake8,此示例方能有效。
格式化代碼
可以配置 VS Code 使其自動格式化代碼。目前支持 autopep8、black 和 yapf。下面的設(shè)置將啟用 “black” 模式。
// Provider for formatting. Possible options include 'autopep8', 'black', and 'yapf'.
"python.formatting.provider": "black",
"python.formatting.blackPath": "${workspaceRoot}/.venv/bin/black"
"python.formatting.blackArgs": ["--line-length=90"],
"editor.formatOnSave": true,
如果不需要編輯器在保存時自動格式化代碼,可以將 editor.formatOnSave
設(shè)置為 false
并手動使用快捷鍵 Ctrl + Shift + I
格式化當(dāng)前文檔中的代碼。 注意,項目的虛擬環(huán)境中需要安裝有 black,此示例方能有效。
運行任務(wù)
VS Code 的一個重要特點是它可以運行任務(wù)。需要運行的任務(wù)保存在項目根目錄中的 JSON 文件中。
運行 flask 開發(fā)服務(wù)
這個例子將創(chuàng)建一個任務(wù)來運行 Flask 開發(fā)服務(wù)器。 使用一個可以運行外部命令的基本模板來創(chuàng)建新的工程:
編輯如下所示的 tasks.json
文件,創(chuàng)建新任務(wù)來運行 Flask 開發(fā)服務(wù):
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Run Debug Server",
"type": "shell",
"command": "${workspaceRoot}/.venv/bin/flask run -h 0.0.0.0 -p 5000",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Flask 開發(fā)服務(wù)使用環(huán)境變量來獲取應(yīng)用程序的入口點。 如 使用環(huán)境變量 一節(jié)所說,可以在 .env
文件中聲明這些變量:
FLASK_APP=wsgi.py
FLASK_DEBUG=True
這樣就可以使用快捷鍵 Ctrl + Shift + B
來執(zhí)行任務(wù)了。
單元測試
VS Code 還支持單元測試框架 pytest、unittest 和 nosetest。啟用測試框架后,可以在 VS Code 中單獨運行搜索到的單元測試,通過測試套件運行測試或者運行所有的測試。
例如,可以這樣啟用 pytest 測試框架:
"python.unitTest.pyTestEnabled": true,
"python.unitTest.pyTestPath": "${workspaceRoot}/.venv/bin/pytest",
注意,項目的虛擬環(huán)境中需要安裝有 pytest,此示例方能有效。