在VS代碼中編輯Python
Python擴展提供了許多用於在Visual Studio代碼中編輯Python源代碼的功能:
也見Linting。
自動完成和智能感知
為當前工作文件夾中的所有文件以及安裝在標准位置的Python軟件包提供自動完成和IntelliSense。
要為安裝在其他非標准位置的軟件包啟用IntelliSense,請python.autoComplete.extraPaths在設置文件中將這些位置添加到集合中(默認集合為空)。例如,您可能已在自定義位置安裝了Google App Engine,在這種情況下,您可以按如下方式指定這些位置:
視窗:
"python.autoComplete.extraPaths": [ "C:/Program Files (x86)/Google/google_appengine", "C:/Program Files (x86)/Google/google_appengine/lib" ]
的MacOS / Linux的:
"python.autoComplete.extraPaths": [ "~/.local/lib/Google/google_appengine", "~/.local/lib/Google/google_appengine/lib" ]
該python.autoComplete.preloadModules設置還允許您通過預加載其信息來加速特定包的自動完成。例如:
"python.autoComplete.preloadModules": ["numpy", "pandas", "matplotlib"],
最后,python.autocomplete.addBrackets設置(默認為false)確定VS代碼()在自動填充函數名稱時是否自動添加括號()。例如,如果設置addBrackets為true:
"python.autoComplete.addBrackets": true,
然后寫,import os然后os.getc,你會看到自動完成os.getcwd。選擇自動完成會添加os.getcwd()到源代碼中並將光標放在括號內。如果設置為false,則僅os.getcwd添加到文件中。
有關IntelliSense的更多信息,請參閱IntelliSense。
故障排除
如果自動完成和IntelliSense不適用於自定義模塊,請檢查以下原因:
| 原因 | 解 |
|---|---|
| python解釋器的路徑不正確 | 檢查pythonPath設置。如果進行更正,請重新啟動VS Code。 |
| 自定義模塊位於非標准位置(未使用pip安裝)。 | 將位置添加到python.autoComplete.extraPaths設置並重新啟動VS Code。 |
| VS Code未從將設置自定義模塊路徑的活動虛擬環境啟動。 | 在命令提示符下啟動VS Code並激活正確的虛擬環境,例如:(venv) ter@minal:~$ code。 |
在終端中運行選擇/行(REPL)
在Python中:運行選擇/ Line在Python的終端命令(Shift + Enter鍵)是被選中的任何代碼,以一種簡單的方式,或在當前行的代碼,如果沒有選擇,並在Python航站樓運行。Python終端命令中的相同運行選擇/行也可在上下文菜單中找到,以便在編輯器中進行選擇。
在終端/ REPL中運行的源代碼是累積的,直到終端的當前實例關閉。
如有必要,該命令將打開Python終端; 您還可以使用Python:Start REPL命令直接打開交互式REPL環境。請注意,初始啟動可能需要一些時間,特別是如果您運行的第一個語句是import。
首次使用Python:在Python終端命令中運行選擇/行時,VS代碼可以在該環境准備好之前將文本發送到REPL,在這種情況下,選擇或行不會運行。如果遇到此行為,請再次嘗試命令REPL已完成加載。
注意:目前,使用Shift + Enter可使編輯器保持在同一行源代碼中。問題480討論了自動移動到下一行。
格式化
Python擴展支持使用autopep8(默認值),黑色或yapf進行源代碼格式化。
常規格式設置
| 設置 (python.formatting。) |
默認值 | 描述 |
|---|---|---|
| 提供商 | "autopep8" |
指定要使用的格式化程序,“autopep8”,“yapf”或“black”。 |
格式化程序特定的設置
以下設置適用於各個格式化程序。Python擴展查看當前pythonPath格式化程序。要在其他位置使用格式化程序,請在相應的自定義路徑設置中指定該位置。
| 格式化 | 安裝步驟 | 參數設置 (python.formatting。) |
自定義路徑設置 (python.formatting。) |
|---|---|---|---|
| autopep8 | pip install pep8 pip install --upgrade autopep8 |
autopep8Args | autopep8Path |
| 黑色 | 點子安裝黑色 | blackArgs | blackPath |
| yapf | 點擊安裝yapf | yapfArgs | yapfPath |
使用自定義參數時,在命令行上用空格分隔的參數字符串的每個頂級元素必須是args列表中的單獨項。例如:
"python.formatting.autopep8Args": ["--max-line-length", "120", "--experimental"], "python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"] "python.formatting.blackArgs": ["--line-length", "100"]
在第二個示例中,頂級元素{based_on_style: chromium, indent_width: 20}是大括號中包含的單個值,因此該值中的空格不會描繪單獨的元素。
故障排除
如果格式化失敗,請檢查以下可能的原因:
| 原因 | 解 |
|---|---|
| python解釋器的路徑不正確 | 檢查pythonPath設置。 |
| 格式化程序未安裝在當前環境中 | 打開命令提示符,導航到pythonPath設置中指定的位置,然后運行pip install格式化程序。 |
| 格式化程序的路徑不正確。 | 檢查相應python.formatting.<formatter>Path設置的值。 |
| 格式化程序的自定義參數不正確。 | 檢查相應的python.formatting.<formatter>Path設置是否包含參數,並且python.formatting.<formatter>Args包含單個頂級參數元素的列表,例如"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"]。 |
使用黑色格式化程序時,VS代碼在將源代碼粘貼到編輯器時發出以下警告:黑色不支持“格式選擇”命令。
要防止出現此警告,請將以下條目添加到用戶或工作區設置以禁用Python文件粘貼格式:
"[python]": { "editor.formatOnPaste": false }
重構
Python擴展添加了以下重構命令:Extract Variable,Extract Method和Sort Imports。
提取變量
提取當前范圍內所選文本的所有類似事件,並將其替換為變量。新方法的名稱為newvariableNNNNNN是隨機數。
調用者:
- 上下文菜單:右鍵單擊選擇並選擇“ 提取變量”。
- 命令選項板(⇧⌘P),然后是Python Refactor:Extract Variable。
- 為
python.refactorExtractVariable命令分配鍵盤快捷鍵。

提取方法
提取當前范圍內所選表達式或塊的所有類似事件,並將其替換為方法調用。新方法的名稱為newmethodNNNNNN是隨機數。
調用者:
- 上下文菜單:右鍵單擊選擇,然后選擇“ 提取方法”。
- 命令選項板(⇧⌘P),然后是Python Refactor:Extract Method。
- 為
python.refactorExtractMethod命令分配鍵盤快捷鍵。

排序進口
Sort Imports使用isort包將來自同一模塊的特定導入合並為單個import語句,並按import字母順序組織語句。
調用者:
- 在編輯器中單擊鼠標右鍵,然后選擇Sort Imports(不需要選擇)
- 命令選項板(⇧⌘P),然后是Python Refactor:Sort Imports
- 為
python.sortImports命令分配鍵盤快捷鍵 - 啟用排序時保存文件。

在python.sortImports.args設置中指定了isort的自定義參數,其中每個頂級元素(在命令行上用空格分隔)是數組中的單獨項:
"python.sortImports.args": ["-rc", "--atomic"],
要使用自定義isort腳本,請使用該python.sortImports.path設置指定路徑:
其他配置可以存儲在.isort.cfg文件中,如配置isort中所述。
在保存時排序導入
要在保存文件時自動對導入進行排序,請將以下條目添加到用戶或工作區設置:
"[python]": { "editor.codeActionsOnSave": { "source.organizeImports": true } }
下一步
- Linting - 啟用,配置和應用各種Python鏈接。
- 調試 - 學習本地和遠程調試Python。
- 單元測試 - 配置單元測試環境並發現,運行和調試測試。
- 基本編輯 - 了解強大的VS代碼編輯器。
- 代碼導航 - 快速瀏覽源代碼。
- IntelliSense - 了解IntelliSense功能。
