vscode 支持python

2022-08-11 14:39 更新

VS Code上的 Python 語言插件,是VS Code插件市場中下載量最大的一個插件。它最初是一個社區(qū)項目,在開發(fā)了兩年后,作者 Don Jayamanne 加入了微軟,從而將這個項目正式升級為微軟的官方維護項目。它的下載地址如下:https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go


Python 插件現(xiàn)在的維護地址是 https://github.com/Microsoft/vscode-python ,你可以看到這個項目是從 https://github.com/DonJayamanne/pythonVSCode fork過來的?,F(xiàn)在所有的反饋和支持都是在微軟的這個 fork repository 上,希望大家不要搞混了。

安裝使用

Python 插件支持絕大多數(shù)主流的 Python 版本,但是 macOS 用戶要注意一點,系統(tǒng)自帶的 Python 并不在支持之列,你可以使用 homebrew 重新安裝一個版本。

同時,在安裝了 Python 之后,你需要將 Python 的地址添加到環(huán)境變量 PATH 中。這里你可以參考文檔查詢更多的關(guān)于 Python 安裝的指導(dǎo)。

安裝完 Python 和這個插件后,當(dāng)你第一次打開 Python 文件時,VS Code就會在本地系統(tǒng)查找 Python 解釋器。如果沒有安裝合適的 Python 的話,VS Code就會給出錯誤提示。比如在 macOS 上,如果沒有額外安裝 Python,你就會看到下面的錯誤提示。


然后你可以通過點擊 “Select Python Interpreter” 來選擇合適的 Python 解釋器。當(dāng)你選擇完正確的 Python 解釋器后,Python 插件則會提示你安裝它需要的 packages。


你按需安裝或者禁用這個功能即可。


在狀態(tài)欄的最左側(cè),就能夠看到當(dāng)前使用的 Python 解釋器,你可以通過點擊這個按鈕進行切換。

語言支持

IntelliSense

說到 Python 插件的語言支持,就不得不提 Visual Studio 和 IronPython。IronPython 是 Python 的一個開源實現(xiàn),它能夠運行在 .NET 環(huán)境之上。Visual Studio 對 IronPython 就有很好的智能語言支持,而它的語言支持的代碼是開源的。這也是VS Code上的 Python 插件在使用的語言服務(wù)。

無論是自動補全,還是參數(shù)提醒、代碼跳轉(zhuǎn)等,都可以進行,可以說這個語言服務(wù)還是很成熟的。

Python 插件會自動讀取本地的各種 Python packages,然后為你提供智能提醒。而這里特別值得一提的是,如果你有一些第三方的 Python 腳本,但是它們并沒有被VS Code的 Python 插件所識別,而你又希望能夠獲得它們的智能提示,那你可以通過添加如下的配置來實現(xiàn):

"python.autoComplete.extraPaths": [
]

JSON

Python 插件就會分析 python.autoComplete.extraPaths 下的所有文件夾,然后分析這些代碼,并且提供 IntelliSense。

代碼格式化

Python 插件默認(rèn)是使用 autopep8 來進行代碼的格式化,同時也支持 black 和 yapf,你可以通過 python.formatting.provider 來進行格式化工具的選擇。


當(dāng)你第一次使用格式化文件(Format Document)時,如果你本地并沒有安裝對應(yīng)的格式化工具的話,VS Code會提出警告。

我建議你打開 editor.formatOnSave 或者 editor.formatOnType ,對代碼進行及時的格式化。因為代碼格式不對而無法運行 Python 腳本可是十分頭疼的。

此外,你還可以通過 python.formatting.autopep8Args、python.formatting.yapfArgs或者 python.formatting.blackArgs 來調(diào)整格式化參數(shù)。

代碼檢測 Linting

默認(rèn)情況下,VS Code會在你保存 Python 文件時進行代碼檢測,然后將錯誤顯示在問題面板中。

默認(rèn)使用的代碼檢測工具是 Pylint。如果你希望使用其他的 Linter,最佳的方法是,打開命令面板,搜索 Python: Select Linter 執(zhí)行,然后選擇你想要的 Linter。

你也可以直接修改設(shè)置來進行選擇,不過要相對復(fù)雜一些,具體則可以參考相關(guān)文檔。

運行腳本

Python 是解釋型語言,無需編譯即可運行。你可以在編輯器內(nèi)右擊打開上下文菜單,然后選擇 “在終端中運行 Python 文件” 來執(zhí)行腳本,VS Code就會使用你指定的 Python 解釋器來執(zhí)行這個文件。

你也可以選擇部分文本,然后將它們在集成終端中運行。

調(diào)試

Python 代碼的調(diào)試,并不需要安裝其他的腳本或者工具,只要你選擇了合適的 Python 解釋器即可。和前面專欄介紹的 Node.js 調(diào)試一樣,如果沒有 launch.json 的話,VS Code會默認(rèn)調(diào)試當(dāng)前文件。

當(dāng)你為 Python 工程創(chuàng)建 launch.json 時,Python 插件會自動提供多種不同的模板,比如在集成終端中調(diào)試當(dāng)前文件,Attach 到某個正在運行的 Python 腳本上,調(diào)試 Python 模塊,調(diào)試 Django 等等。

相信你還記得,在介紹調(diào)試器 launch.json 的書寫時,我提到過,各個調(diào)試器的配置選項都不完全相同,如果 Python 調(diào)試的模板不能滿足你的需求,你可以通過相關(guān)文檔來了解 Python 插件都支持哪些調(diào)試參數(shù)。

Unit Test

Python 插件既支持 Python 自帶的 unittest,同時也支持 pytest 和 Nose。在安裝了對應(yīng)的 Python package 后,你可以從命令面板里執(zhí)行 Python: Discover Unit Tests 命令,Python 插件就會依次問以下問題:

  • Enable/Configure Test Framework,選擇測試框架,在下面的動圖里,我選擇了unittest;
  • 選擇在哪個文件夾下搜索測試文件,我選擇了根目錄;
  • 選擇測試文件名字的模式 glob,Python 插件會根據(jù)這個模式來尋找測試文件。

在測試被成功找到后,你能夠看到測試文件里,每個測試的上面都有兩個快捷操作 Run Test 和 Debug Test,你可以點擊它們進行測試的執(zhí)行。

你也可以在狀態(tài)欄上找到一個按鈕Run Tests,點擊選擇運行所有測試。

測試執(zhí)行完后,你能在狀態(tài)欄上看到測試的結(jié)果。


當(dāng)然,真正發(fā)揮VS Code威力,還是通過 “Debug Test” 來調(diào)試某個單獨的測試。你只需設(shè)置斷點,點擊 Debug Test 即可進入調(diào)試狀態(tài)。

已知問題和前瞻

雖然 Python 插件在維護了接近三年后,已經(jīng)非常成熟了,但是我覺得還有一個問題很值得一提的。

Windows 10 現(xiàn)在支持了 Linux Subsystem,你可以在這個 Linux 系統(tǒng)中使用 Python 和各種只能在 Linux 上使用的 package。但是受限于VS Code的支持,Python 插件還不能很好地識別和加載 WSL 里的 Python 環(huán)境,如此一來,你就沒法使用VS Code和 Python 插件的各種功能了。不過好在VS Code團隊已經(jīng)在研究解決方案了。

另外,Python 插件最振奮人心的消息就是微軟加大了對它的投資,從最開始的一個個人項目,到微軟的官方項目,再到微軟請來了 Python 的核心開發(fā)者Brett Cannon擔(dān)任 Python 語言支持的領(lǐng)導(dǎo)工作,所以可以預(yù)見:無論是在VS Code上,還是 Visual Studio 上,Python都會有不錯的前景。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號