Python Linux

Python: ModuleNotFoundError — No module named

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

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

Установите пакет в нужное окружение и проверьте интерпретатор.

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

#Что означает ошибка

Сообщение
No module named

Ошибка ModuleNotFoundError: No module named 'имя' означает, что интерпретатор Python не нашёл модуль среди установленных пакетов. Чаще всего проблема не в том, что пакет не существует, а в том, что вы установили его в одном окружении, а запускаете код в другом. На машине обычно несколько версий Python, виртуальные окружения и IDE со своими интерпретаторами.

Поэтому первое, что стоит выяснить, — какой именно python выполняет ваш скрипт и в какой каталог pip устанавливает пакеты. Совпадение этих двух путей решает большинство случаев.

Установите пакет в нужное окружение и проверьте интерпретатор.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Не установленПакет.Проявляется как «No module named» или близкий по смыслу сбой.pip install.
Другой pythonИнтерпретатор.Проявляется как «No module named» или близкий по смыслу сбой.Проверьте.
venv не активенОкружение.Проявляется как «No module named» или близкий по смыслу сбой.Активируйте.
ОпечаткаИмя.Проявляется как «No module named» или близкий по смыслу сбой.Исправьте.

#Пошаговое решение

  1. Определите, какой Python запускает программуОткройте встроенный терминал редактора в папке проекта. Выполните python -c "import sys; print(sys.executable)" и python -m pip --version; в Windows при отсутствии python попробуйте py -c "import sys; print(sys.executable)" и py -m pip --version. Сравните пути: команда pip без python -m может относиться к другому окружению. Запишите имя отсутствующего модуля точно из ошибки, включая регистр букв.
  2. Активируйте окружение именно этого проектаЕсли рядом с проектом есть каталог .venv, в Windows PowerShell запустите .\.venv\Scripts\Activate.ps1, в cmd — .venv\Scripts\activate.bat, в macOS/Linux — source .venv/bin/activate. При запрете исполнения PowerShell используйте cmd либо запускайте .venv\Scripts\python.exe напрямую, не отключая общую политику безопасности. После активации повторите команду определения sys.executable: путь должен указывать на .venv.
  3. Установите правильный пакет и проверьте импортОткройте requirements.txt или pyproject.toml и найдите зависимость, предоставляющую модуль: имя пакета при установке может отличаться от имени импорта (Pillow → PIL). В активном окружении выполните python -m pip install -r requirements.txt, если файл существует, либо python -m pip install ИМЯ_ПАКЕТА с реальным именем из официальной документации. Командой python -m pip show ИМЯ_ПАКЕТА убедитесь, что пакет установлен в том же Python. Для неизвестного модуля не устанавливайте случайные одноимённые пакеты.
  4. Проверьте имя файла, IDE и итоговый запускЕсли ошибка осталась, проверьте, нет ли в проекте файла requests.py, email.py или каталога с именем нужного модуля, который затеняет библиотеку. В настройках редактора укажите интерпретатор из .venv и перезапустите окно запуска. Выполните исходную команду и убедитесь, что отсутствует прежний ModuleNotFoundError; при новой ошибке сохраните всю трассировку, sys.executable и список пакетов python -m pip list.

#Как проверить окружение

Выполните python -c "import sys; print(sys.executable)" и python -m pip --version. Пути должны указывать на одно и то же окружение. Всегда используйте форму python -m pip install пакет вместо просто pip: так пакет устанавливается именно для выбранного интерпретатора.

#Виртуальные окружения и IDE

Создайте окружение командой python -m venv .venv, активируйте его и установите зависимости из requirements.txt. В VS Code и PyCharm выберите интерпретатор проекта явно: IDE нередко запускает системный Python вместо окружения проекта. В Jupyter убедитесь, что ядро соответствует окружению.

#Прочие причины

Имя в импорте может отличаться от имени пакета (pip install pillow, но import PIL; scikit-learn и sklearn). Файл вашего проекта может называться так же, как и импортируемый модуль (random.py, requests.py) и «затенять» его. Для собственных пакетов проверьте наличие __init__.py и запуск из корня проекта.

Linux · Терминал (Bash)Команда
Создание и активация окружения (в Windows активация: .venv\Scripts\activate).
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

#Где скачать и что открыть

Так эту ошибку тоже называют

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

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