Python WindowsLinuxmacOSPython 3

Python: Ошибка ModuleNotFoundError после переключения виртуального окружения

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

ModuleNotFoundError после переключения виртуального окружения чаще означает, что скрипт запускается не тем Python либо нужная зависимость установлена в другое окружение.

В этой статье
  1. Что произошло и когда проявляется ошибка
  2. Причины и диагностические признаки
  3. Подробная пошаговая диагностика и исправление
  4. Как проверить, что проблема устранена
  5. Если исправление не помогло

#Что произошло и когда проявляется ошибка

ModuleNotFoundError после переключения виртуального окружения чаще означает, что скрипт запускается не тем Python либо нужная зависимость установлена в другое окружение.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Окружение не активированоКоманда python использует системный интерпретатор.В приглашении нет имени окружения; sys.prefix равен sys.base_prefixЗапустить Python из каталога нужного venv.
Пакет установлен в соседний venvКаждое виртуальное окружение имеет собственный набор пакетов.В одном терминале import работает, в другом нетУстанавливать зависимости через -m pip конкретного интерпретатора.
Запуск редактором в обход терминалаРедактор хранит собственный путь интерпретатора.Терминал работает, кнопка Run даёт ModuleNotFoundErrorВыбрать интерпретатор проекта в редакторе.

#Подробная пошаговая диагностика и исправление

  1. 1. Выясните, какой Python реально выполняет скриптОткройте терминал в папке проекта. Введите следующую команду; она выведет путь к Python и два префикса. Если prefix == base_prefix, окружение не используется. Проверьте также, есть ли .venv/Scripts/python.exe в Windows или .venv/bin/python в Linux/macOS.
    Linux · Терминал (Bash)Команда
    В Windows используйте python или py -3 с учётом способа установки.
    python -c "import sys; print(sys.executable); print(sys.prefix); print(sys.base_prefix)"
  1. 2. Запустите именно Python из нужного окруженияНе полагайтесь на название pip в PATH. Из корня проекта в PowerShell выполните .\.venv\Scripts\python.exe -m pip --version, в Linux/macOS — ./.venv/bin/python -m pip --version. Существование папки .venv не означает правильную настройку редактора.
  2. Для Linux/macOS
    Linux · Терминал (Bash)Команда
    Для Linux/macOS. Windows: .\.venv\Scripts\python.exe -m pip --version в PowerShell.
    ./.venv/bin/python -m pip --version
  1. 3. Проверьте наличие нужного пакетаДля имени пакета из ошибки замените requests на реальное имя устанавливаемого дистрибутива. Сначала выполните ... -m pip show requests; если пакет отсутствует, ставьте его в нужное окружение после проверки файла зависимостей. Имя импорта иногда отличается от имени пакета в pip.
  2. Linux/macOS, без sudo; на Windows используйте путь .venv\Scripts\python.exe
    Linux · Терминал (Bash)Команда
    Linux/macOS, без sudo; на Windows используйте путь .venv\Scripts\python.exe.
    ./.venv/bin/python -m pip show requests
    ./.venv/bin/python -m pip install requests
  1. 4. Проверьте импорт в том же интерпретатореПосле установки запустите непосредственный импорт с помощью полного пути; появление имени файла библиотеки подтверждает, что импорт найден. Если импорт продолжает падать, прочитайте весь текст исключения — ошибка может быть во вложенной зависимости, а не в верхнем пакете.
  2. Подставьте реальный пакет; команда не загружает данные из сети
    Linux · Терминал (Bash)Команда
    Подставьте реальный пакет; команда не загружает данные из сети.
    ./.venv/bin/python -c "import requests; print(requests.__file__)"
  1. 5. Согласуйте запуск в редактореВ VS Code откройте папку проекта и выполните команду палитры Python: Select Interpreter, затем выберите путь из первого шага. В другой среде разработки найдите параметр интерпретатора проекта; названия настроек различаются. Перезапустите отладку и сравните sys.executable.

#Как проверить, что проблема устранена

В той же среде, из которой запускается приложение, импорт проходит без ошибки и sys.executable указывает на нужное окружение.

#Если исправление не помогло

Если обнаружена ошибка внутри пакета, проверьте совместимость версий библиотек и Python по документации конкретного пакета; переустановка без выяснения причины может усложнить диагностику.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.