VSCode:如何为 Python 配置“组织导入”(isort)

Man*_*anu 18 python sorting import visual-studio-code isort

将问题镜像至:

我想配置 VSCode 如何调用isort,这样我就可以在调用Organize imports.py 文件时进行自定义。


特别是,VSCode 已开始删除两个 isort-section 之间的空行,不知道为什么。

from django...
from myproject... # removing blanck line between 2 sections
Run Code Online (Sandbox Code Playgroud)

xsh*_*ira 25

您可以isort兼容black并享受格式化代码。有两种方法可以实现此目的:

\n
    \n
  1. 您可以在 上配置Black\ Isortxe2\x80\x99s 设置pyproject.toml。\n在 root\xe2\x80\x99s 项目文件夹中,创建/更新您的pyproject.toml文件:
  2. \n
\n
[tool.isort]\nmulti_line_output = 3\ninclude_trailing_comma = true\nforce_grid_wrap = 0\nline_length = 88\nprofile = "black"\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 编辑settings.json和配置Black以及Isort.
  2. \n
\n
{\n   "[python]": {\n    "editor.codeActionsOnSave": {\n      "source.organizeImports": true\n       }\n     },\n\n   "python.formatting.provider": "black",\n   "isort.args": ["--profile", "black"],\n}\n
Run Code Online (Sandbox Code Playgroud)\n

source.organizeImports: true保存文档后自动运行 Isort。

\n

  • @jkulak 我认为这曾经在旧版本的 VSCode(或 Python 扩展)中自动工作,但在最新版本中它似乎已经停止工作。我在这里打开了一个[问题](https://github.com/microsoft/vscode-python/issues/20205)。 (2认同)

Paw*_*Kam 17

截至 2022 年底,vscode-pythonpython.sortImports中的设置将被删除。请参阅链接

VS Code 希望我们使用isort.argsvscode -isort来代替。例如常见的配置

   "python.sortImports.args": ["--profile", "black"],
Run Code Online (Sandbox Code Playgroud)

应替换为

   "isort.args": ["--profile", "black"],
Run Code Online (Sandbox Code Playgroud)

否则你会看到

“此设置很快就会被删除。请isort.args改用。”

信息。


Jil*_*eng 8

在 VS Code 中,“Python”扩展为我们提供了以下设置,可以将同一模块中的特定导入合并到单个导入语句中,并按字母顺序组织导入语句。(在“settings.json”文件中)

"python.sortImports.args": ["-rc", "--atomic"],
Run Code Online (Sandbox Code Playgroud)

关于在 VS Code 中使用“Sort Imports”,请参考这篇文档:Sort Imports in VS Code。