Расширение Python в среде Visual Studio Code: установка, настройка, примеры

Раздел: Инструменты -> Среда разработки

Расширение Python для VS Code: возможности и настройка

Visual Studio Code (VS Code) с расширением Python от Microsoft превращается в полноценную среду разработки для языка Python. Расширение включает поддержку IntelliSense, отладку, линтинг, форматирование, работу с Jupyter Notebook, управление виртуальными окружениями и многое другое.

Какое расширение является основным для работы с Python в VS Code?

Официальное расширение Python (идентификатор ms-python.python) - это базовый набор инструментов. Оно включает в себя:

  • Автодополнение (IntelliSense) на основе Pylance.
  • Отладчик с поддержкой точек останова, условных остановок, просмотра переменных.
  • Линтеры (pylint, flake8, mypy) и форматтеры (black, autopep8, yapf).
  • Управление виртуальными окружениями (venv, conda, poetry).
  • Запуск файлов, тестирование (unittest, pytest, Django).
  • Поддержка Jupyter Notebook и интерактивного режима Python.

Установка расширения

code --install-extension ms-python.python

Vscode extension python (расширение python для vs code)

Или через панель расширений VS Code (Ctrl+Shift+X).

Выбор интерпретатора

После установки откроется окно выбора интерпретатора. Если этого не произошло, нажать Ctrl+Shift+P и ввести Python: Select Interpreter. Расширение автоматически обнаруживает установленные версии Python, а также виртуальные окружения в папке проекта.

Проблема: расширение не находит интерпретатор

Убедиться, что Python установлен и добавлен в PATH. Если используется виртуальное окружение, оно должно находиться в корне проекта или в стандартной папке (venv, .venv, env). Для ручного указания пути: Python: Enter Interpreter Path.

Как настроить линтинг и форматирование кода?

Расширение поддерживает несколько линтеров и форматтеров. По умолчанию используется pylint. Для смены на flake8 или mypy нужно изменить настройки.

{
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.formatting.provider": "black"
}

Notebook python windows (jupyter notebook для python на windows)

Настройки применяются как глобально, так и локально в .vscode/settings.json проекта. Для установки недостающих пакетов используется терминал: pip install flake8 black.

Как отлаживать Python-код?

Отладчик запускается через меню Run and Debug (Ctrl+Shift+D). Для простого запуска текущего файла без конфигурации используется кнопка Run Python File (треугольник в правом верхнем углу). Для полноценной отладки с точками останова создаётся конфигурация launch.json.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

После установки точки останова (F9) запускается отладка (F5). В панели отладки можно просматривать переменные, стек вызовов, использовать Watch.

Проблема: отладчик не останавливается на точках останова

Проверить, что файл является частью проекта (открытая папка). Если используется виртуальное окружение, убедиться, что выбран правильный интерпретатор. Иногда помогает перезагрузка VS Code или очистка кэша отладки.

Как работать с виртуальными окружениями через расширение?

Расширение автоматически определяет виртуальные окружения в папках venv, .venv, env, а также окружения conda и poetry. При создании нового проекта можно создать окружение через палитру команд: Python: Create Environment - выбирается venv или conda. Все установленные пакеты отображаются в проводнике (Python Environments).

Как запускать Jupyter Notebook в VS Code?

Достаточно открыть файл .ipynb или создать новый через палитру команд Jupyter: Create New Blank Notebook. Поддерживаются ячейки, автодополнение, отображение графиков. Для работы необходимо установить Jupyter: pip install jupyter notebook. Расширение Python автоматически подключает ядро.

Проблема: Jupyter Notebook не запускается, ошибка No kernel

Выбрать ядро вручную: нажать на имя ядра в правом верхнем углу и указать интерпретатор. Если ядро не появилось, проверить установку ipykernel: pip install ipykernel.

Дополнительные компоненты: расширение Pylance (уже встроено в Python расширение) улучшает автодополнение и проверку типов. Расширение Python Debugger (ms-python.debugpy) обеспечивает работу отладчика. Для тестирования доступны фреймворки unittest, pytest и Django - настройки в settings.json.

Подробные примеры работы с расширением Python

Пример 1: Запуск скрипта с аргументами через отладчик

Создание конфигурации launch.json для передачи аргументов командной строки.

Пример
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: run with args",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/script.py",
            "args": ["--input", "data.txt", "--verbose"],
            "console": "integratedTerminal"
        }
    ]
}

Код script.py:

Пример
import sys
import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--input", required=True)
    parser.add_argument("--verbose", action="store_true")
    args = parser.parse_args()
    print(f"Input file: {args.input}")
    if args.verbose:
        print("Verbose mode enabled")
Вывод в интегрированном терминале:
Input file: data.txt
Verbose mode enabled

Пример 2: Условная точка останова

Установка точки останова, которая срабатывает только при определённом значении переменной.

Пример
for i in range(10):
    # Точка останова с условием i == 5
    print(i)

В панели отладки дважды кликнуть по точке останова -> Edit Breakpoint -> ввести i == 5. При запуске отладки выполнение прервется только на итерации i=5.

Пример 3: Использование pytest с расширением

Настройка тестирования через pytest. Предварительно установить pytest: pip install pytest.

В settings.json проекта:

Пример
{
    "python.testing.pytestEnabled": true,
    "python.testing.unittestEnabled": false
}

Создать файл test_sample.py:

Пример
def test_addition():
    assert 1 + 1 == 2

def test_subtraction():
    assert 2 - 1 == 1

В VS Code появляется значок Run Tests рядом с каждым тестом. Результат отображается в панели Python Test Explorer.

Пример 4: Интерактивное окно Python (REPL)

Запуск интерактивного окна через палитру команд Python: Start REPL. После этого можно писать код построчно:

Пример
>>> import math
>>> math.sqrt(144)
12.0
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]

Интерактивное окно поддерживает автодополнение и историю команд.

Пример 5: Работа с виртуальным окружением и установка пакетов

Создание окружения через палитру команд Python: Create Environment -> выбрать venv -> указать версию Python. Расширение создаст папку .venv и автоматически выберет его как интерпретатор.

Пример
Откройте терминал VS Code (Ctrl+`). Активация окружения:
.venv\Scripts\activate    (Windows)
source .venv/bin/activate   (Linux/Mac)

Установка пакетов: pip install requests numpy. Расширение обновит список окружений и IntelliSense будет учитывать установленные пакеты.

Пример 6: Форматирование с Black при сохранении

Настройка форматирования кода автоматически при сохранении файла.

Пример
{
    "editor.formatOnSave": true,
    "python.formatting.provider": "black",
    "python.formatting.blackArgs": ["--line-length", "120"]
}

Теперь при Ctrl+S код будет автоматически отформатирован по стандарту Black.

Пример 7: Создание и отладка Django-приложения

Установка Django: pip install django. Создать проект: django-admin startproject myproject. Открыть папку myproject в VS Code. Для отладки Django используется конфигурация launch.json:

Пример
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": ["runserver", "0.0.0.0:8000"],
            "django": true
        }
    ]
}

Точку останова можно установить в любом view-функции.

Расширение Python для VS Code - comments

En
Vscode extension python (python)