Запись архива

Как настроить VS Code для Python: интерпретатор, venv, запуск и отладка

Настройка Python в VS Code состоит из трёх независимых действий: установить Python, добавить расширение редактора и выбрать окружение проекта. Если пропустить последнее, пакеты могут устанавливаться в один Python, а…

Как настроить VS Code для Python: интерпретатор, venv, запуск и отладка

Настройка Python в VS Code состоит из трёх независимых действий: установить Python, добавить расширение редактора и выбрать окружение проекта. Если пропустить последнее, пакеты могут устанавливаться в один Python, а программа запускаться в другом. Отсюда знакомая ситуация: pip сообщает, что библиотека установлена, но импорт завершается ошибкой.

В этом руководстве создадим отдельное окружение .venv, запустим программу и тест, затем проверим отладчик. Примеры не требуют сторонних библиотек для самого приложения. Общие настройки редактора вынесены в базовый гайд по VS Code.

1. Установите Python и проверьте команду

Скачайте подходящий установщик с официальной страницы Python. Если работаете с существующим проектом, сначала проверьте требуемую версию в его README и файлах конфигурации. Новейший Python не обязательно совместим с зависимостями старого приложения.

Откройте новый терминал. В Windows проверьте:

python --version

В macOS и Linux обычно используют:

python3 --version

В Windows также может быть доступен py --version. Выберите команду, которая действительно запускает нужный интерпретатор, и используйте её для создания окружения. Если вместо версии открывается магазин приложений, разберитесь с установкой Python и псевдонимами запуска Windows. Расширение редактора эту проблему не исправит.

Не удаляйте системный Python Linux ради учебного проекта. Если отсутствует модуль venv, установите компонент виртуальных окружений через пакетный менеджер своего дистрибутива; в Ubuntu/Debian это обычно пакет python3-venv.

2. Откройте проект и установите расширение

Создайте папку python-start и откройте её через File → Open Folder. В Extensions установите Python от Microsoft, идентификатор ms-python.python. Для отладки используется расширение Python Debugger; если VS Code предложит его установить, подтвердите установку официального компонента Microsoft.

Дополнительные средства управления окружениями могут отображаться в отдельной панели Python Environments. Названия элементов интерфейса меняются, но проверяемое действие остаётся прежним: выбрать конкретный исполняемый файл Python для проекта. Это описано в документации Python environments.

3. Создайте виртуальное окружение

Удобный путь через интерфейс: палитра команд → Python: Create EnvironmentVenv → нужный базовый интерпретатор. Окружение проекта обычно создаётся в .venv.

Для более явного контроля выполните одну команду в терминале из корня проекта. В Windows:

python -m venv .venv

В macOS/Linux:

python3 -m venv .venv

Затем запустите Python: Select Interpreter и выберите Python из этой папки. Если его нет в списке, укажите путь вручную:

  • Windows: .venvScriptspython.exe;
  • macOS/Linux: .venv/bin/python.

Окружение не следует копировать между компьютерами или операционными системами. Воспроизводить нужно зависимости, а само окружение создавать заново. Такую модель использования предусматривает стандартный модуль venv.

4. Проверьте, какой Python действительно запускается

Создайте main.py:

import sys


def total_price(price: int, quantity: int) -> int:
    return price * quantity


if __name__ == "__main__":
    print("Python:", sys.executable)
    print("Total:", total_price(350, 3))

Сохраните файл и вызовите Python: Run Python File in Terminal. Вы должны увидеть путь внутри .venv и строку Total: 1050. Сам путь на вашем компьютере будет другим.

Внешний терминал и уже открытая вкладка терминала не обязаны автоматически переключиться после выбора интерпретатора. Для независимой проверки запустите Python по явному пути. Windows:

..venvScriptspython.exe main.py

macOS/Linux:

./.venv/bin/python main.py

Это также помогает, когда PowerShell запрещает выполнение Activate.ps1. Для запуска Python активация не обязательна. Не отключайте политику безопасности на всём компьютере только ради виртуального окружения.

5. Устанавливайте пакеты в нужное окружение

Привязывайте pip к конкретному Python. Например, для установки pytest в Windows:

..venvScriptspython.exe -m pip install pytest
..venvScriptspython.exe -m pip --version

В macOS/Linux:

./.venv/bin/python -m pip install pytest
./.venv/bin/python -m pip --version

Вторая команда должна показать pip из .venv. Это надёжнее отдельного pip install, который может относиться к другой установке. Синтаксис запуска через интерпретатор приведён в документации pip.

В существующем проекте используйте его менеджер зависимостей и lock-файл. Не устанавливайте случайные версии поверх окружения, которое уже обслуживается Poetry, uv или другим инструментом. Для учебного окружения список установленного можно получить через python -m pip freeze, но это снимок среды, а не универсальный формат управления любым Python-проектом.

6. Настройте отладчик

Поставьте точку останова на строке return price * quantity. В Run and Debug выберите запуск Python-файла. Для явного профиля создайте .vscode/launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: main.py",
      "type": "debugpy",
      "request": "launch",
      "program": "${workspaceFolder}/main.py",
      "console": "integratedTerminal",
      "cwd": "${workspaceFolder}"
    }
  ]
}

Нажмите F5 и проверьте значения price и quantity. Современный тип Python-конфигурации здесь debugpy. По умолчанию используется выбранный интерпретатор проекта, поэтому исправлять неверное окружение следует через Select Interpreter, а не случайной заменой путей. Поля конфигурации описаны в справочнике Python debugging.

7. Добавьте первый тест

Рядом с main.py создайте test_main.py:

from main import total_price


def test_total_price():
    assert total_price(350, 3) == 1050


def test_zero_quantity():
    assert total_price(350, 0) == 0

Выполните Python: Configure Tests, выберите pytest и корень проекта. Либо запустите явно:

..venvScriptspython.exe -m pytest -q

Для macOS/Linux замените начало команды на ./.venv/bin/python. Ожидаемый результат: два успешных теста. Имена test_*.py помогают pytest обнаружить проверки. Если панель Testing пустая, посмотрите журнал обнаружения тестов: причиной может быть ошибка импорта, а не отсутствие тестовой функции. Возможности панели описаны в документации Python testing.

Что делать с частыми ошибками

Симптом Что проверить первым
ModuleNotFoundError Совпадают ли sys.executable и Python, через который устанавливался пакет
Run работает, F5 нет Профиль launch.json, рабочую папку и выбранный интерпретатор
.venv отсутствует в списке Завершилось ли создание окружения; существует ли его python
Нельзя ввести данные через input() Запускается ли программа в Terminal, а не в Output
После установки Python команда не найдена PATH и полный перезапуск VS Code после установки
FileNotFoundError при открытии данных Текущий рабочий каталог; он не обязан совпадать с папкой исходника

Добавьте .venv/ и __pycache__/ в .gitignore, но сохраните в репозитории код, тесты и принятый в проекте файл зависимостей. О том, что именно попадёт в коммит, читайте в гайде по Git.

Нужен ли отдельный форматтер?

Для запуска Python нет. Для единого оформления команды выберите один форматтер и зафиксируйте правила проекта. Не переносите настройки Prettier для JavaScript на Python автоматически: это другая цепочка инструментов.

Какой результат считать правильной настройкой?

В терминале виден Python из .venv, программа печатает 1050, F5 останавливается на нужной строке, а оба теста проходят. Эти проверки важнее количества установленных расширений.