使用 VS Code 進(jìn)行 Python 編程

Visual Studio Code,簡(jiǎn)稱 VS Code,是一個(gè)開源的文本編輯器,包含用于構(gòu)建和調(diào)試應(yīng)用程序的工具。安裝啟用 Python 擴(kuò)展后,VS Code 可以配置成理想的 Python 開發(fā)工作環(huán)境。本文將介紹一些有用的 VS Code 擴(kuò)展,并配置它們以充分提高 Python 開發(fā)效率。

如果你的計(jì)算機(jī)上還沒有安裝 VS Code,可以參考文章?在 Fedora 上使用 VS Code?來安裝。

在 VS Code 中安裝 Python 擴(kuò)展

首先,為了更方便地在 VS Code 中進(jìn)行 Python 開發(fā),需要從 VS Code 擴(kuò)展商店中安裝 Python 擴(kuò)展。


Python 擴(kuò)展安裝完成后,就可以開始配置 Python 擴(kuò)展了。

VS Code 通過兩個(gè) JSON 文件管理設(shè)置:

一個(gè)文件用于 VS Code 的全局設(shè)置,作用于所有的項(xiàng)目

另一個(gè)文件用于特殊設(shè)置,作用于單獨(dú)項(xiàng)目

可以用快捷鍵?Ctrl+,?(逗號(hào))打開全局設(shè)置,也可以通過?文件 -> 首選項(xiàng) -> 設(shè)置?來打開。

設(shè)置 Python 路徑

您可以在全局設(shè)置中配置?python.pythonPath?使 VS Code 自動(dòng)為每個(gè)項(xiàng)目選擇最適合的 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?下項(xiàng)目根目錄中的 Python 解釋器。

使用環(huán)境變量

默認(rèn)情況下,VS Code 使用項(xiàng)目根目錄下的?.env?文件中定義的環(huán)境變量。 這對(duì)于設(shè)置環(huán)境變量很有用,如:

PYTHONWARNINGS="once"

可使程序在運(yùn)行時(shí)顯示警告。

可以通過設(shè)置?python.envFile?來加載其他的默認(rèn)環(huán)境變量文件:

// Absolute path to a file containing environment variable definitions.

"python.envFile": "${workspaceFolder}/.env",

代碼分析

Python 擴(kuò)展還支持不同的代碼分析工具(pep8、flake8、pylint)。要啟用你喜歡的或者正在進(jìn)行的項(xiàng)目所使用的分析工具,只需要進(jìn)行一些簡(jiǎn)單的配置。

擴(kuò)展默認(rèn)情況下使用 pylint 進(jìn)行代碼分析。你可以這樣配置以使用 flake8 進(jìn)行分析:

"python.linting.pylintEnabled": false,

"python.linting.flake8Path": "${workspaceRoot}/.venv/bin/flake8",

"python.linting.flake8Enabled": true,

"python.linting.flake8Args": ["--max-line-length=90"],

啟用代碼分析后,分析器會(huì)在不符合要求的位置加上波浪線,鼠標(biāo)置于該位置,將彈窗提示其原因。注意,項(xiàng)目的虛擬環(huán)境中需要安裝有 flake8,此示例方能有效。

格式化代碼

可以配置 VS Code 使其自動(dòng)格式化代碼。目前支持 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,

如果不需要編輯器在保存時(shí)自動(dòng)格式化代碼,可以將?editor.formatOnSave?設(shè)置為?false?并手動(dòng)使用快捷鍵?Ctrl + Shift + I?格式化當(dāng)前文檔中的代碼。 注意,項(xiàng)目的虛擬環(huán)境中需要安裝有 black,此示例方能有效。

運(yùn)行任務(wù)

VS Code 的一個(gè)重要特點(diǎn)是它可以運(yùn)行任務(wù)。需要運(yùn)行的任務(wù)保存在項(xiàng)目根目錄中的 JSON 文件中。

運(yùn)行 flask 開發(fā)服務(wù)

這個(gè)例子將創(chuàng)建一個(gè)任務(wù)來運(yùn)行 Flask 開發(fā)服務(wù)器。 使用一個(gè)可以運(yùn)行外部命令的基本模板來創(chuàng)建新的工程:

編輯如下所示的?tasks.json?文件,創(chuàng)建新任務(wù)來運(yùn)行 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)用程序的入口點(diǎn)。 如?使用環(huán)境變量?一節(jié)所說,可以在?.env?文件中聲明這些變量:

FLASK_APP=wsgi.py

FLASK_DEBUG=True

這樣就可以使用快捷鍵?Ctrl + Shift + B?來執(zhí)行任務(wù)了。

單元測(cè)試

VS Code 還支持單元測(cè)試框架 pytest、unittest 和 nosetest。啟用測(cè)試框架后,可以在 VS Code 中單獨(dú)運(yùn)行搜索到的單元測(cè)試,通過測(cè)試套件運(yùn)行測(cè)試或者運(yùn)行所有的測(cè)試。

例如,可以這樣啟用 pytest 測(cè)試框架:

"python.unitTest.pyTestEnabled": true,

"python.unitTest.pyTestPath": "${workspaceRoot}/.venv/bin/pytest",

注意,項(xiàng)目的虛擬環(huán)境中需要安裝有 pytest,此示例方能有效。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容