Чтобы подготовить VS Code для Python, нужны три вещи: сам Visual Studio Code, интерпретатор Python и расширение Python от Microsoft. Дальше открываете папку проекта, создаёте в ней виртуальное окружение .venv, выбираете его командой «Python: Select Interpreter» и запускаете файл кнопкой Run Python File в правом верхнем углу.
Команды терминала прогнаны на Windows 10 с Python 3.14.3. Названия пунктов интерфейса сверены с файлами расширения Python 2026.8.0 и документацией.
- Что нужно для работы с Python в VS Code
- Установка Visual Studio Code
- Windows
- macOS
- Linux
- Установка Python
- Расширение Python и что оно устанавливает вместе с собой
- Папка проекта и виртуальное окружение
- Выбор интерпретатора
- Создание и запуск файла
- Установка пакетов через pip
- Отладка с точкой останова
- Настройка линтера и форматтера
- Тесты
- Полезные расширения для Python
- Частые вопросы
- VS Code не видит установленный Python. Что делать?
- Пакет установлен, а импорт падает с ModuleNotFoundError. Почему?
- Обязательно ли активировать виртуальную среду?
- VS Code или PyCharm для Python?
Что нужно для работы с Python в VS Code
VS Code сам код Python не исполняет, и расширение тоже не содержит интерпретатора. Среду разработки собирают из трёх частей:
| Часть | Что делает | Где взять |
|---|---|---|
| Visual Studio Code | редактор кода, терминал, панели | code.visualstudio.com |
| Python | интерпретатор, который выполняет код | python.org, Homebrew, менеджер пакетов Linux |
| Расширение Python | подсветка, автодополнение, запуск, отладка | вкладка Extensions внутри редактора |
Установка Visual Studio Code
Windows
Скачайте с официального сайта установщик User setup: он не требует прав администратора, и обновления с ним устанавливаются проще всего. По умолчанию VS Code устанавливается в C:\Users\<имя>\AppData\Local\Programs\Microsoft VS Code и добавляет себя в PATH. После установки закройте и заново откройте консоль, тогда в любой папке сработает команда code .. Вариант System setup устанавливает VS Code для всех пользователей компьютера и просит права администратора.
macOS
Откройте скачанный .dmg и перетащите Visual Studio Code.app в папку Applications. Команда code в терминале появится только после настройки: запустите VS Code, нажмите Cmd+Shift+P, введите shell command и выберите Shell Command: Install ‘code’ command in PATH. Терминал после этого перезапустите.
Linux
На Ubuntu и Debian скачайте пакет .deb и установите его:
sudo apt install ./<файл>.deb
При установке пакет предложит подключить репозиторий Microsoft, и дальше обновления VS Code придут вместе с системными. Для Fedora и RHEL есть .rpm (sudo dnf install <файл>.rpm), для дистрибутивов со Snap подойдёт sudo snap install --classic code.

Установка Python
На Windows с версии 3.14 рекомендуемый способ поменялся. Прежний полный установщик объявлен устаревшим, для Python 3.16 его уже не выпустят. Вместо него на python.org и в Microsoft Store лежит Python install manager. После него в терминале работают команды python и py, а новые версии добавляются командой py install 3.14. При первой установке он предложит добавить каталог в PATH; это не обязательно, если запускаете через py. Список установленных версий показывает py list:
Tag Name Managed By Version Alias
3.14[-64] * Python 3.14.3 PythonCore 3.14.3 python3[-64].exe, python3.14[-64].exe
Звёздочка отмечает версию по умолчанию. Системный Python на macOS расширение не поддерживает, установите Python через Homebrew: brew install python3. В Linux обычно уже есть python3, но на Ubuntu и Debian для venv нужен пакет python3-venv: если его нет, python3 -m venv .venv сообщит, что ensurepip недоступен, и подскажет команду установки.
Проверка установки: python3 --version на Linux и macOS, py -3 --version или python --version на Windows. Если Python устанавливали при открытом VS Code, перезапустите терминал или весь VS Code, иначе новая версия не появится.
Расширение Python и что оно устанавливает вместе с собой
Откройте панель Extensions (Ctrl+Shift+X, на macOS Cmd+Shift+X), введите python и выберите расширение Python от Microsoft, его идентификатор ms-python.python. Нажмите Install. Вместе с ним автоматически установятся ещё три расширения:
- Pylance: автодополнение, подсказки по типам и подсветка ошибок (IntelliSense);
- Python Debugger: отладчик, работает через debugpy;
- Python Environments: панель для окружений и пакетов.
Python Environments устанавливается всегда, но включён не у всех: это решает настройка python.useEnvironmentsExtension. Если в VS Code установлен русский языковой пакет, команды расширения переведены: «Python: Select Interpreter» будет называться «Выбор интерпретатора», кнопка запуска «Запуск файла Python». Все команды доступны в палитре (Ctrl+Shift+P или F1), она позволяет искать по части слова, достаточно набрать «интерпр».

Папка проекта и виртуальное окружение
VS Code работает с папкой: открытая папка становится рабочей областью, и расширение ищет виртуальную среду внутри неё. Создайте новый проект из терминала:
mkdir hello
cd hello
code .
Или откройте готовый каталог через File > Open Folder. Отдельную виртуальную среду для каждого проекта мы советуем заводить сразу, даже под один файл: пакеты устанавливаются в неё, и версии библиотек двух проектов не спорят.
Создать .venv можно двумя путями. В VS Code: палитра команд, команда «Python: Create Environment», тип Venv, затем выбрать интерпретатор; .venv появится в проводнике. В терминале то же самое делает одна команда:
python -m venv .venv
На Linux и macOS вместо python пишите python3. В нашем прогоне внутри .venv оказались Include, Lib, Scripts, pyvenv.cfg и файл .gitignore со звёздочкой внутри: с Python 3.13 venv сам исключает среду из Git. Её в репозиторий не кладут, список пакетов хранят в requirements.txt.
Активация зависит от системы и оболочки:
| Система и оболочка | Команда активации |
|---|---|
| Linux, macOS (bash, zsh) | source .venv/bin/activate |
| Windows, cmd.exe | .venv\Scripts\activate.bat |
| Windows, PowerShell | .venv\Scripts\Activate.ps1 |
| Windows, Git Bash | source .venv/Scripts/activate |
Выйти из виртуальной среды можно командой deactivate. Во встроенном терминале VS Code активирует выбранную среду сам, когда терминал открывается. Если PowerShell отказывается запускать Activate.ps1 из-за политики выполнения сценариев, разбор ошибки и команда для исправления есть в статье про ModuleNotFoundError в Python.

Выбор интерпретатора
Откройте палитру команд, введите «Python: Select Interpreter» и выберите вариант с .venv. Второй путь: щёлкнуть версию Python в строке состояния внизу окна. Выбранный интерпретатор VS Code использует для запуска, отладки и автодополнения. Если ничего не выбрано, расширение само берёт .venv или venv из рабочей области, а при их отсутствии системный Python. Среда не появилась: при включённом Python Environments выполните «Python Environments: Refresh All Environment Managers», в любом случае можно выбрать пункт Enter interpreter path… и укажите путь к python.exe вручную.
Какой интерпретатор на самом деле запускает код, покажет сам Python. Создайте новый файл main.py:
import sys
def average(numbers):
return sum(numbers) / len(numbers)
scores = [5, 4, 4, 3]
print(f"Python {sys.version.split()[0]}")
print(f"Интерпретатор: {sys.executable}")
print(f"Средний балл: {average(scores):.2f}")
Запуск системным Python:
Python 3.14.3
Интерпретатор: C:\Users\User\AppData\Local\Python\pythoncore-3.14-64\python.exe
Средний балл: 4.00
Запуск после активации окружения:
Python 3.14.3
Интерпретатор: C:\projects\hello\.venv\Scripts\python.exe
Средний балл: 4.00
Проверьте вторую строку. Если в ней нет .venv, пакеты, установленные в виртуальную среду, программа не увидит и при импорте упадёт с ModuleNotFoundError.
Создание и запуск файла
Новый файл создаётся кнопкой New File на панели проводника. Расширение .py обязательно: по нему VS Code понимает, что это код Python. Сохраните файл (Ctrl+S) и запустите одним из способов:
- Кнопка Run Python File (треугольник) в правом верхнем углу. Она открывает терминал, активирует выбранную среду и выполняет файл.
- Правая кнопка мыши в редакторе кода, затем Run Python > Run Python File in Terminal. Эта команда ещё и сохраняет файл.
- Выделить фрагмент и нажать Shift+Enter: он выполнится в терминале Python (REPL).
Кнопка запускает код из корня проекта, а не из каталога, где лежит сам файл. За это отвечает настройка python.terminal.executeInFileDir, по умолчанию она выключена. Отсюда частая ошибка с относительными путями. Скрипт tools/summa.py читает соседний data.txt:
with open("data.txt", encoding="utf-8") as f:
values = [int(row) for row in f]
print(sum(values))
Из корня проекта он падает:
FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'
Из tools тот же код печатает 245. Чинить лучше в коде: путь к данным строим от расположения скрипта. Исправленный tools/summa.py:
from pathlib import Path
data_file = Path(__file__).parent / "data.txt"
with open(data_file, encoding="utf-8") as f:
values = [int(row) for row in f]
print(sum(values))
Теперь из корня выводится 245. Если хочется практики на таких скриптах, возьмите задачи по Python для начинающих.

Установка пакетов через pip
Пакеты устанавливайте во встроенном терминале, где уже активна среда проекта. Форма python -m pip install гарантирует, что pip принадлежит тому же интерпретатору. Для примера поставим black и flake8, чтобы ниже запускать их из терминала (расширениям VS Code они в окружении не нужны, об этом в разделе про линтер):
python -m pip install black flake8
В свежей виртуальной среде из пакетов есть только pip. Чтобы повторить набор на другом компьютере, сохраните его в файл:
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
У нас после установки линтера, форматтера и pytest в requirements.txt вышло 16 строк. По этому же файлу устанавливают зависимости при сборке образа в Docker. Библиотека для графиков ставится той же командой, python -m pip install matplotlib, а примеры графиков есть в статье про Matplotlib.
Отладка с точкой останова
Функция в файле words.py должна считать слова длиной от пяти символов, а считает не все:
def count_long_words(text, min_len):
"""Считает слова длиной от min_len символов."""
count = 0
for word in text.split():
if len(word) > min_len:
count += 1
return count
if __name__ == "__main__":
line = "VS Code сам находит папку .venv в проекте"
print(count_long_words(line, 5))
Программа печатает 2, хотя подходящих слов четыре: «находит», «папку», «.venv», «проекте». Поставьте курсор на условие if и нажмите F9 или щёлкните слева от номера: появится красная точка останова. Затем F5. При первом запуске VS Code спросит тип конфигурации, выберите Python File. Выполнение остановится на точке, текущая строка будет отмечена жёлтой стрелкой, а в панели Variables появятся word, count и min_len.
Нажимайте F5, чтобы дойти до следующего прохода цикла. Когда word станет 'папку', F10 выполнит условие и покажет, что count += 1 пропущен: длина 5, а 5 > 5 ложно. Нужен оператор >=, с ним программа печатает 4. Чтобы не листать цикл, щёлкните правой кнопкой по полю слева от номеров, выберите Add Conditional Breakpoint, тип Expression и задайте выражение word == "папку".
Клавиши отладки: F10 шаг с обходом функции, F11 шаг внутрь функции, Shift+F11 выход из функции, Shift+F5 остановка. Если программе нужны аргументы командной строки, в панели Run and Debug нажмите ссылку create a launch.json file. VS Code создаст .vscode/launch.json, конфигурации в нём лежат в массиве configurations. Параметр args дописывается в нужную конфигурацию:
{
"configurations": [
{
"name": "Python Debugger: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["--verbose"]
}
]
}

Настройка линтера и форматтера
Синтаксические ошибки языковой сервер расширения Python находит по умолчанию. Стиль и подозрительные места проверяют линтеры: Pylint, Flake8, Mypy Type Checker, Ruff. Форматтеры: Black Formatter, autopep8, Ruff. Устанавливаются они как обычные расширения из панели Extensions. Свои замечания линтер выводит при открытии и сохранении файла, список собирает панель Problems (Ctrl+Shift+M).
Вот report.py, написанный наспех, с опечаткой в последней строке:
import os
def total(values,discount = 0):
s=sum( values )
return s-s*discount/100
print(total([120,80,45],10))
print(totl([1,2]))
Flake8 (7.4.1) находит 14 замечаний. Вот начало и самое важное:
report.py:1:1: F401 'os' imported but unused
report.py:2:1: E302 expected 2 blank lines, found 0
report.py:2:17: E231 missing whitespace after ','
report.py:6:7: F821 undefined name 'totl'
Black (26.10.0) переписывает файл:
import os
def total(values, discount=0):
s = sum(values)
return s - s * discount / 100
print(total([120, 80, 45], 10))
print(totl([1, 2]))
reformatted report.py
All done! ✨ 🍰 ✨
1 file reformatted.
Пробелы и пустые строки на месте, но опечатка totl и лишний import os остались, flake8 по-прежнему их показывает. При запуске программа печатает 220.5 и падает с NameError: name 'totl' is not defined. Did you mean: 'total'?. Форматтер ошибок не ищет, поэтому устанавливайте его в паре с линтером.
Форматирование вызывается через правую кнопку мыши, пункт Format Document, или сочетанием клавиш Shift+Alt+F (на Linux Ctrl+Shift+I, на macOS Shift+Option+F). Чтобы Black работал при каждом сохранении, откройте «Preferences: Open User Settings (JSON)» и добавьте:
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
По умолчанию используется встроенная в расширение версия инструмента, поэтому устанавливать black и flake8 в виртуальную среду для работы в VS Code не нужно. Туда их добавляют, когда проверку запускают из терминала или в CI.

Тесты
Расширение запускает тесты unittest и pytest. Откройте панель Testing (значок колбы на левой панели) и нажмите Configure Python Tests или выполните «Python: Configure Tests», выберите pytest и каталог с тестами. Pytest находит файлы, имя которых начинается с test_ или заканчивается на _test. Тест для функции из раздела про отладку, файл test_words.py рядом с words.py:
from words import count_long_words
def test_counts_words_of_min_length():
assert count_long_words("папку проекте в", 5) == 2
С ошибочным > pytest 9.1.1 сообщает:
E AssertionError: assert 1 == 2
E + where 1 = count_long_words('папку проекте в', 5)
...
1 failed in 0.06s
После замены на >= тест проходит: 1 passed. В редакторе рядом с тестом появится зелёный значок запуска, а упавший тест подсветится прямо в коде.
Полезные расширения для Python
Для начала хватит набора, который устанавливается с расширением Python. Дополнительные расширения добавляйте под задачу:
| Расширение | Идентификатор | Зачем |
|---|---|---|
| Jupyter | ms-toolsai.jupyter | блокноты .ipynb прямо в VS Code |
| Black Formatter | ms-python.black-formatter | форматирование кода |
| Flake8 | ms-python.flake8 | линтер стиля и ошибок |
| Pylint | ms-python.pylint | линтер |
| Mypy Type Checker | ms-python.mypy-type-checker | проверка аннотаций типов |
| Ruff | charliermarsh.ruff | линтер и форматтер в одном расширении |
| isort | ms-python.isort | сортировка импортов |
Частые вопросы
VS Code не видит установленный Python. Что делать?
Перезапустите терминал или весь VS Code: терминал читает PATH только при старте. Проверьте версию командой python --version (на Linux и macOS python3 --version), потом выберите интерпретатор с помощью «Python: Select Interpreter».
Пакет установлен, а импорт падает с ModuleNotFoundError. Почему?
Пакет установлен в один интерпретатор, а файл запускает другой. Запустите main.py из раздела про выбор интерпретатора и сравните путь с тем, куда устанавливал pip. Подробный разбор причин в статье про ModuleNotFoundError: No module named.
Обязательно ли активировать виртуальную среду?
Нет. Можно вызывать её интерпретатор по полному пути: .venv\Scripts\python.exe main.py на Windows или .venv/bin/python main.py на Linux и macOS.
VS Code или PyCharm для Python?
PyCharm от JetBrains создан как IDE для Python, у него есть бесплатная версия. В Visual Studio Code поддержку Python добавляют расширения, а сам редактор работает и с другими языками программирования. Для учёбы и небольших проектов настроенного VS Code хватает.








