Разработка 7 мин чтения

ModuleNotFoundError: No module named — как исправить в Python

Пошаговое руководство по устранению ошибки ModuleNotFoundError: No module named в Python: установка пакетов, виртуальные окружения, pip и версии Python.

PythonpipмодульImportErrorvirtualenv

Симптомы

  • ModuleNotFoundError: No module named requests
  • ImportError: No module named
  • pip install не помогает, ошибка повторяется
  • Модуль установлен, но Python его не видит
  • Разные версии Python используют разные пакеты

Возможные причины

  • Пакет не установлен в текущем окружении Python
  • Используется неправильная версия Python (2 vs 3)
  • Виртуальное окружение не активировано
  • Пакет установлен глобально, но скрипт запущен в venv
  • Конфликт имён: файл называется так же как модуль

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

1

Проверьте версию Python и pip

Убедитесь, что pip привязан к нужной версии Python. Выполните python --version и pip --version. Если установлено несколько версий Python, используйте python3 и pip3. Вывод покажет путь к интерпретатору — убедитесь, что это тот Python, в который вы хотите установить пакет. Частая ошибка: pip устанавливает в Python 3.10, а скрипт запускается через Python 3.11.

Команда
python --version && pip --version
2

Установите пакет через pip

Выполните pip install имя-пакета для установки. Если пакет уже установлен, pip выведет Requirement already satisfied. Попробуйте pip install --upgrade имя-пакета для обновления. Для установки конкретной версии: pip install имя-пакета==2.1.0. Если pip не найден, используйте python -m pip install имя-пакета — это гарантирует использование pip из нужного Python.

Команда
pip install requests
3

Активируйте виртуальное окружение

Если вы работаете в виртуальном окружении, убедитесь, что оно активировано. На Linux/macOS: source venv/bin/activate. На Windows: venv\Scripts\activate. После активации в начале строки появится (venv). Пакеты, установленные без активации venv, будут недоступны внутри окружения. Создайте venv если его нет: python -m venv venv.

Команда
source venv/bin/activate
4

Проверьте sys.path

Выполните python -c "import sys; print(sys.path)" для просмотра путей поиска модулей. Убедитесь, что директория с пакетом присутствует в списке. Если пакет установлен в site-packages другой версии Python, добавьте путь в PYTHONPATH: export PYTHONPATH=/path/to/packages. Также проверьте pip show имя-пакета — он покажет Location установки.

Команда
python -c "import sys; print(sys.path)"
5

Устраните конфликт имён

Если ваш файл называется так же как устанавливаемый модуль (например, requests.py), Python будет импортировать ваш файл вместо пакета. Переименуйте файл:mv requests.py my_requests.py. Проверьте наличие файлов с такими именами в директории: ls *.py. Также удалите файлы __pycache__ и .pyc, если они есть — кешированные модули могут конфликтовать.

Команда
ls *.py
6

Переустановите пакет с нуля

Если стандартная установка не помогает, удалите пакет полностью: pip uninstall имя-пакета -y. Затем очистите кеш: pip cache purge. Установите заново: pip install имя-пакета. Если пакет установлен из GitHub: pip install git+https://github.com/user/repo.git. Для development-установки: pip install -e . (из директории с setup.py).

Команда
pip uninstall requests -y && pip cache purge && pip install requests
7

Проверьте requirements.txt

Если проект использует requirements.txt, установите все зависимости: pip install -r requirements.txt. Убедитесь, что в файле нет опечаток и версий, несовместимых с вашей версией Python. Для автоматической проверки совместимости: pip check. Еслиrequirements.txt содержит --index-url или --extra-index-url, убедитесь, что эти репозитории доступны.

Команда
pip install -r requirements.txt

Ошибка ModuleNotFoundError — одна из самых частых в Python. Она означает, что интерпретатор не может найти указанный модуль при импорте. Причин несколько: пакет не установлен, установлен в другое окружение, конфликт имён файлов или неправильная версия Python.

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

Выполните pip show имя-пакета. Если пакет установлен, pip покажет его версию, расположение и зависимости. Если вывода нет — пакет не установлен в текущем окружении. Также проверьте pip list для просмотра всех установленных пакетов. Обратите внимание на Location в выводе pip show — это покажет, в какой site-packages установлен пакет.

Почему pip install не помогает

Частая ситуация: pip install requests выполняется успешно, но ошибка повторяется. Причина: pip установил пакет в Python 3.10, а скрипт запускается через Python 3.11. Решение: используйте python3 -m pip install для явного указания версии. Или проверьте, какой Python используется в вашем окружении: which python на Linux/macOS, where python на Windows.

Проверка состояния пакетов

Выполните sudo apt —fix-broken install (Debian/Ubuntu) или sudo dnf distro-sync (Fedora) для исправления сломанных зависимостей. Проверьте повреждённые пакеты: sudo dpkg —audit (Debian) или sudo rpm -Va (RHEL). Это покажет, какие файлы изменены или отсутствуют.

Очистка кеша

Очистите кеш пакетов: sudo apt clean (Debian) или sudo dnf clean all (Fedora). Удалите неиспользуемые зависимости: sudo apt autoremove. Это освободит место и устранит конфликты версий. Если ошибка в репозитории, проверьте /etc/apt/sources.list на наличие неверных URL.

Переустановка пакета

Для переустановки повреждённого пакета: sudo apt install —reinstall имя-пакета. Если пакет зависит от других повреждённых, переустановите их все. Проверьте версию: apt show имя-пакета. Убедитесь, что версия совместима с вашейОС.

Исправление ключей GPG

Если ошибка связана с подписью пакета (NO_PUBKEY), обновите ключи: sudo apt-key adv —keyserver keyserver.ubuntu.com —recv-keys КЛЮЧ. Или: sudo gpg —keyserver keyserver.ubuntu.com —recv КЛЮЧ. Для Fedora: sudo rpm —import /etc/pki/rpm-gpg/RPM-GPG-KEY-*.

Проверка репозиториев

Убедитесь, что репозитории доступны и не дублируются: apt-cache policy (Debian) или dnf repolist (Fedora). Отключите ненужные репозитории: sudo add-apt-repository —remove ppa:имя. Для Fedora: sudo dnf config-manager —set-disabled репозиторий. Конфликтующие репозитории — частая причина ошибок.

Источники

  1. stackoverflow.com — проверено 02.06.2026
  2. freecodecamp.org — проверено 02.06.2026
  3. stackoverflow.com — проверено 02.06.2026
  4. stackoverflow.com — проверено 02.06.2026