VS Code — это мощный инструмент для разработки на Python, который легко настроить для работы с такими полезными утилитами, как pylint
, black
и isort
. Эти инструменты помогут поддерживать чистоту кода, единый стиль и упорядоченность импортов. Для поиска и устранения ошибок пригодится встроенный отладчик debugpy
, обеспечивающий удобный процесс дебага. В дополнение ко всему можно подключить искусственного помощника для ускорения написания кода. В этой статье мы рассмотрим установку и настройку этих инструментов, а также их интеграцию с VS Code.
Проблема: многие тупо ставят нужные инструменты и расширения, но забивают на настройку этих самых инструментов. Есть люди, которые не могут настроить VS Code, поэтому называют его «блокнотом», но сабж — это конструктор, и расширения как кубики из которых ты можешь собрать самолет или ракету, либо кривую башню, которая тут же развалится. Все зависит лишь от того насколько у тебя кривые руки.
Установка необходимых инструментов
В Arch Linux все необходимые инструменты можно поставить из стандартного репозитория:
yay -S python-{black,pylint,isort,debugpy}
Альтернативный способ — это использование pipx
.
pipx
— это инструмент для установки исполнямых файлов из пакетов Python локально для пользователя в виртуальные окружения. При установке исполняемые файлы создаются в ~/.local/bin
(сами виртуальные окружения лежат в ~/.local/pipx/venvs
). Это предпочтительный способ установки различных линтеров и инструментов для форматирования кода в дистрибутивах, где этих пакетов нет в стандартном репозитории. Зачем виртуальные окружения? — Чтобы избежать конфликта версий зависимостей для утилит, такое редко, но бывает, поэтому иногда и в Arch приходится что-то ставить через pipx
. Отметьте это у себя на подкорке [головного мозга], чтобы потом судорожно не искать решение проблемы, либо сразу все ставьте этим способом.
Также отмечу, что во многих дистрибутивах ничего нельзя поставить через системный pip
(если хочется, то используйте asdf-vm
или pyenv
), так разрабы заботятся о том, чтобы система не утонула в осиротевших пакетах — зависимостях зависимостей, которыми не умеет управлять pip
, а так же чтобы система, которая активно использует python
, не превратилась в тыкву.
Установка pipx
через пакетный менеджер в Arch Linux:
yay -S python-pipx
Установка через pip в Ubuntu/Linux Mint и других системах:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Установка pylint
, black
, isort
и debugpy
с помощью pipx
:
pipx install pylint black isort debugpy
Убедитесь, что
~/.local/bin
добавлен вPATH
.
Описание инструментов
-
pylint — это статический анализатор кода для Python. Он помогает находить ошибки и предупреждения в коде, такие как несоответствие стиля, неправильное использование переменных, некорректные импортированные модули и другие проблемы, которые могут возникнуть во время разработки. Подробнее на странице проекта Pylint.
-
black — это инструмент для автоматического форматирования Python-кода. Он придерживается строгого стиля кодирования (PEP8) и всегда приводит код к единому виду. Black особенно полезен в больших проектах, где несколько разработчиков работают с одним кодом. Подробнее на странице проекта Black.
-
isort — это инструмент для автоматической сортировки импортов в Python. Он организует импорты в логические группы (стандартные библиотеки, сторонние библиотеки, локальные импорты) и делает это совместимо с
black
, что предотвращает конфликты в форматировании. Подробнее на странице проекта isort. -
debugpy — это питоновский «стандартный» отладчик. Настраивать его не надо как и разбираться в его работе. То что этот проект от M$ (как и сам VS Code) некоторых может заставить отложить кирпичи, но в мире разработки за опенсорцем давно стоят корпорации зла. Если забыть его поставить, то VS Code при наличии соответствующего расширения сам предложит его установить. Подробнее в репозитории debugpy.
Настройка Pylint
Pylint
можно настроить как глобально, так и для конкретного проекта. Создайте в корне пользовательского каталога либо проекта файл .pylintrc
:
[MASTER]
# Максимальная длина строки
max-line-length=80
# Путь к файлам, которые нужно игнорировать
ignore=migrations
# Дополнительные директории, которые игнорируются
ignore-patterns=__pycache__,migrations
[MESSAGES CONTROL]
# Отключение раздражающих проверок
disable=
C0103, # Не соответствует соглашению именования (например, переменные типа x, y)
C0114, # Модуль без docstring
C0115, # Класс без docstring
C0116, # Функция/метод без docstring
C0301, # Строка слишком длинная
C0330, # Неправильное выравнивание продолжений строк
C0413, # Неправильное расположение импортов
R0801, # Дублирующийся код
R0903, # Класс слишком прост (например, класс с одним методом)
R0913, # Слишком много аргументов у функции
R0914, # Слишком много локальных переменных
R0915, # Слишком большая функция
W0105, # Неиспользуемый docstring
W0511, # Комментарий TODO
W0611, # Неиспользуемый импорт
W0613, # Неиспользуемый аргумент функции
W0614, # Неиспользуемый импорт из *
W0621, # Переопределена внешняя переменная
W0703, # "Голое" исключение (catch-all except)
W1203, # Использование f-строк при логгировании
W1514, # Не задана кодировка
[FORMAT]
# Число пробелов в табуляции
indent-string=' ' # 4 пробела
# Максимальная длина строки
max-line-length=80
[DESIGN]
# Максимальное количество аргументов для функции
max-args=5
[TYPECHECK]
# Настройка путей для поиска модулей
init-import=no
Подробнее на странице настройки Pylint.
Настройка Black
Black
можно настроить через файл pyproject.toml
(глобально настройки хранятся в ~/.config/black/pyproject.toml
):
[tool.black]
line-length = 80
skip-string-normalization = true
skip-magic-trailing-comma = true
exclude = '''
/(
\.git
| \.venv
| __pycache__
| migrations
)/
'''
Подробнее на странице настройки Black.
Настройка isort
Настройки isort
можно добавить в pyproject.toml
в корне проекта:
[tool.isort]
profile = "black"
line_length = 80
multi_line_output = 3
include_trailing_comma = true
Для глобальной настройки можно создать файл ~/.isort.cfg
:
[settings]
profile = black
line_length = 80
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true
default_section = THIRDPARTY
skip_gitignore = true
Подробнее на странице настройки isort.
Установка расширений для VS Code
Все необходимые расширения можно установить разом, не пытаясь отыскать их в каталоге:
xargs -n1 code --install-extension <<< "ms-python.black-formatter ms-python.debugpy ms-python.isort ms-python.pylint ms-python.python ms-python.vscode-pylance Blackboxapp.blackbox"
Описание расширений:
- Black Formatter — это расширение для автоматического форматирования Python-кода с использованием
black
. - Debugpy — отладчик для Python в VS Code.
- Isort — расширение для сортировки импортов с использованием
isort
. - Pylint — расширение для статического анализа Python-кода с использованием
pylint
. - Python — официальное расширение для Python от Microsoft.
- Pylance — быстрое и мощное расширение для анализа кода Python на основе сервера языка (речь про протокол LSP). Через него реализуется автодополнение кода, проверка типов. Он не требует установки каких-то пакетов Python, все необходимое идет с расширением.
- Blackbox AI Code Generation… — это тот самый [де-]генеративный AI, который может писать за вас код либо искать ответы вместо гугления с хождением по ссылкам, что ооооочень сильно экономит время. В отличии от ChatGPT данный инструмент не имеет ограничений по количеству запросов и доступу из России.
Во избежание конфликтов отключите другие расширения для проверки синтаксиса и форматирования.
Настройки VS Code
Отредактируйте файл settings.json
:
{
"[python]": {
"editor.formatOnType": true,
"editor.wordBasedSuggestions": "off",
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.tabSize": 4
},
// Просто настройки для примера
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"editor.formatOnSave": true,
"editor.insertSpaces": true,
"editor.rulers": [80, 88, 100],
"editor.tabSize": 2,
"editor.wordWrap": "on",
"telemetry.telemetryLevel": "off",
// ...
}
Как пользоваться отладчиком для тех кто в танке
Использование отладчика в Python с помощью VS Code становится интуитивно понятным и удобным благодаря интегрированной поддержке. Для начала, щелкните по иконке «Run and Debug» на боковой панели или нажмите Ctrl+Shift+D
. Затем выберите «create a launch.json file» и добавьте конфигурацию для Python. После этого появится кнопка для запуска отладчика.
Теперь вы можете ставить точки остановки выполнения (красные точки), кликая ЛКМ слева от номера строки (Click to add a breakpoint). Запустите отладчик, и он остановится на каждой такой точке, позволяя вам проверять состояние переменных и выполнять выражения в консоли отладки. Вы сможете слева увидеть дерево со значениями переменных, просматривать шаг за шагом изменения его состояния, что значительно упрощает поиск и исправление ошибок.
Совет на все времена: пользуйтесь всегда английской версией программ
Заключение
Настройка pylint
, black
, isort
и их интеграция с VS Code позволяет упростить процесс разработки, обеспечить единый стиль кодирования и улучшить читаемость кода. Эти инструменты помогут вам поддерживать ваш Python-код в порядке, минимизируя ошибки и гарантируя соответствие стандартам. И, конечно же, разработка крупных проектов без отладчика невозможна, а помощь искусственного интеллекта неоценима. Теперь можно приступать к разработке ботов для Telegram на Python за 500 рублей в свободное от школы время…