VSCode: как настроить 'Организовать импорт' для Python (isort)

Зеркальный вопрос к

Я хочу настроить, как VSCode вызывает isort , чтобы я мог настраивать при вызове Organize imports в файле .py.


В частности, VSCode начал удалять пустую строку между двумя isort-секциями, не знаю почему.

      from django...
from myproject... # removing blanck line between 2 sections

5 ответов

Решение

В VS Code расширение «Python» предоставляет нам следующие настройки, которые могут объединять определенные операции импорта из одного модуля в один оператор импорта и упорядочивать операторы импорта в алфавитном порядке. (в файле "settings.json")

      "python.sortImports.args": ["-rc", "--atomic"],

Для использования «Сортировка импорта» в VS Code см. Этот документ: Сортировка импорта в VS Code.

Ты можешь сделатьisortсовместим сblackи наслаждайтесь отформатированным кодом при сохранении документа. Вот два способа добиться этого:

  1. Вы можете настроить и параметры на . Внутри папки вашего корневого проекта создайте/обновите свойpyproject.tomlфайл:
      [tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
line_length = 88
profile = "black"
  1. Редактироватьsettings.jsonи настроитьBlackиIsort.
      {
   "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports": true
       }
     },

   "python.formatting.provider": "black",
   "python.sortImports.args": ["--profile", "black"],
}

source.organizeImports: trueавтоматически запускает Isort при сохранении документа.

По состоянию на конец 2022 г.python.sortImportsнастройка из vscode-python будет удалена. Смотрите ссылку.

VS Code хочет, чтобы мы вместо этого использовали vscode-isort . Например, общая конфигурация

         "python.sortImports.args": ["--profile", "black"],

следует заменить на

         "isort.args": ["--profile", "black"],

В противном случае вы увидите

"Эта настройка скоро будет удалена. Используйтеisort.argsвместо."

сообщение.

Вы можете установить расширение Isort в VSCode , как показано ниже. *Я использую Anaconda в Windows 11:

Затем установите приведенный ниже код на . *Вы можете увидеть мой ответ, объясняющий, как открыть:

      // "settings.json"

"[python]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
}

Это ниже мое полноеsettings.jsonс приведенным выше кодом:

      // "settings.json"

{
    "python.defaultInterpreterPath": "C:\\Users\\kai\\anaconda3\\python.exe",
    "window.zoomLevel": 3,
    "files.autoSave": "afterDelay",
    "breadcrumbs.enabled": false,
    "[python]": { // Here
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        }
    }
}

См. мой ответ в разделе «Как определить, какой isort является vscode», где я описываю шаги, чтобы увидеть, что на самом деле происходит. Вы увидите команду вместе с аргументами. Версия isort, встроенная в подключаемый модуль Microsoft Python, не отображается как isort. Вместо этого это sortImports.py. У него есть путь, поэтому вы можете посмотреть код для получения дополнительной информации.

Другие вопросы по тегам