簡體   English   中英

即使在將 Black 配置為格式化程序后,獲取“擴展 'Python Language Basics' 無法格式化 ~'/'”

[英]Getting “Extension 'Python Language Basics' cannot format ~'/'” even after configuring Black as formatter

我正在嘗試為 VS Code 設置格式化程序。 我想使用黑色,但我很難讓它發揮作用。 當我嘗試使用 Format Document 命令時,我收到一條錯誤消息,提示“Python 自動格式化:擴展 'Python Language Basics' 無法格式化 ~'/'”。

我遵循了在線教程並完成了以下操作:

  • pip3 安裝黑色
  • 將黑色設置為 python 格式提供程序(進入設置,找到“Python › Formatting: Provider”,從下拉列表中選擇黑色)
  • 保存時打開格式
  • 將默認格式化程序設置為 null

為什么 VS Code 仍然默認為“Python 語言基礎”? 如何將其更改為 Black 或 yapf?

如果它仍在調用內置的 Python Language Basics 擴展,那么這意味着 Black 沒有正確配置 您執行的步驟似乎沒有任何問題,因此我建議您仔細檢查設置。

  • pip3 安裝黑色

在這里,您必須確保安裝 Black 的 Python 環境與您在 VS Code 中激活的 Python 環境相同 請參閱有關選擇和激活環境的文檔。 如果您有多個 Python 版本,或者您使用的是虛擬環境,則必須確保激活正確的版本。

Python:Select 解釋器

在此處輸入圖像描述

(test-py38) gino@~$ pip install black
Requirement already satisfied: black in ./.venvs/test-py38/lib/python3.8/site-packages (19.10b0)
...
(test-py38) gino@~$ which black
/Users/gino/.venvs/test-py38/bin/black

您可以設置python.formatting.blackPath以明確指定 Black 的路徑:

"python.formatting.blackPath": "/Users/gino/.venvs/test-py38/bin/black"

您也可以嘗試通過手動調用來檢查 Black 是否在工作。

(test-py38) gino@~$ black test.py
reformatted test.py
All done! ✨ 🍰 ✨
1 file reformatted.
  • 將黑色設置為 python 格式提供程序(進入設置,找到“Python › Formatting: Provider”,從下拉列表中選擇黑色)
  • 保存時打開格式
  • 將默認格式化程序設置為 null

再次仔細檢查您的設置。json

"editor.defaultFormatter": null,
"editor.formatOnSave": true,
"python.formatting.provider": "black",

此外,請確保您配置了正確的設置,因為 VS Code 有 3 組設置UserWorkspaceFolder settings

在此處輸入圖像描述

當我嘗試使用格式文檔命令時

鑒於您啟用formatOnSave ,您實際上不需要調用Format Document命令。 保存文件時,它應該自動調用defaultFormatter (即null ),因此它會調用特定於語言的格式化程序( python.formatting.provider )。

如果您真的想手動調用該命令,請嘗試Format Document With..然后 select Python

在此處輸入圖像描述

您給出的錯誤信息有點不尋常,因為“autopep8”是默認格式,如果您沒有安裝格式提供程序,VSCode 會提示您安裝它。

“Python Language Basics”是一個內置擴展,它說:擴展“Python Language Basics”無法格式化。 function 由 python 擴展提供。 所以,也許你可以嘗試重新安裝相關的擴展,例如“Python”,重新打開 VSCode,甚至重新安裝 VSCode。 有人也遇到同樣的問題,通過重裝解決了。 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM