Перейти к содержимому
EVI Solutions

Ошибка Module not found: почему возникает и как исправить

Легко 10 мин Обновлено:

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

Ошибка Module not found означает, что программа не может найти модуль или пакет, который пытается загрузить. Самые частые причины: неправильное имя или путь, модуль не установлен, неверная рабочая директория или несоответствующее окружение. Решение: проверить импорт, установить пакет и запустить проект из правильной папки.

Как проявляется проблема

  • Сообщение `ModuleNotFoundError: No module named 'x'` в Python
  • Сообщение `Error: Cannot find module 'x'` в Node.js
  • Приложение падает сразу после запуска
  • Ошибка возникает только на другой машине или в окружении CI
  • Импорт работает в редакторе, но не из терминала

Частые причины

Модуль не установлен

Пакет, который запрашивает код, отсутствует в окружении. Это часто происходит, когда `npm install` или `pip install` не запускается после загрузки проекта.

Неправильное имя или путь

В импорте есть опечатка, неверный относительный путь или отсутствует `__init__.py` в пакете Python. Node.js ищет точное имя модуля в `node_modules`.

Неверная рабочая директория

Команда выполняется из папки, которая не является корнем проекта, поэтому `node_modules` или виртуальное окружение не видны. Проверьте, в какой папке вы находитесь перед запуском.

Несоответствующее окружение

Вы используете глобальный Python вместо виртуального окружения или другую версию Node.js, отличную от той, которую ожидает проект. Зависимости тогда не видны.

Проблемы с кешем или установкой

Частично установленный пакет, повреждённый `node_modules` или устаревший `package-lock.json` могут привести к тому, что модуль существует, но недоступен.

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

  1. 1

    Прочитайте точное имя модуля из ошибки

    Сообщение в терминале указывает имя отсутствующего модуля. Запишите его и сравните со строкой импорта в коде. В Node.js ошибка обычно начинается с Error: Cannot find module, а в Python с ModuleNotFoundError.

  2. 2

    Проверьте, что вы в корне проекта

    Выполните pwd (macOS/Linux), cd в командной строке Windows или Get-Location в PowerShell, чтобы увидеть текущую папку. В ней должны быть package.json для Node.js или requirements.txt/pyproject.toml для Python. Если их нет, перейдите в правильную папку командой cd путь/к/проекту.

  3. 3

    Установите зависимости

    Для Node.js выполните npm install в корне проекта. Для Python активируйте виртуальное окружение и выполните pip install -r requirements.txt. Если модуль всё ещё отсутствует, установите его отдельно: npm install имя-пакета или pip install имя-пакета.

  4. 4

    Проверьте импорт и путь

    Убедитесь, что импорт соответствует реальному имени пакета и структуре папок. В Python относительные импорты зависят от того, откуда запускается модуль; в Node.js проверьте, начинается ли путь с ./ для локальных файлов. Обращайте внимание на регистр букв.

  5. 5

    Очистите кеш и переустановите

    Если модуль существует, но не виден, перед удалением сделайте резервную копию проекта или проверьте, что он сохранён в Git-репозитории. Затем удалите node_modules и package-lock.json и снова выполните npm install; удаление package-lock.json может изменить версии зависимостей. В Python удалите папки __pycache__ и переустановите пакет. Процедура может занять время.

  6. 6

    Проверьте версию языка и окружение

    Выполните node -v или python --version и сравните с требованиями проекта. В Python проверьте, активировано ли виртуальное окружение (в приглашении отображается его имя). В Node.js используйте nvm, если нужно переключить версию.

  7. 7

    Протестируйте изолированно

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

Когда ничего не помогает

Если вы прошли все шаги, а ошибка остаётся, проверьте, использует ли проект настройки монорепозитория или рабочей области, где пакеты находятся в другой папке. Посмотрите также, не является ли это глобальной установкой, которая маскирует отсутствие локальной. В Node.js выполните npm ls имя-пакета, чтобы увидеть, присутствует ли пакет вообще в дереве зависимостей. В Python pip show имя-пакета даёт расположение установки. Если ошибка возникает только в системе CI, сравните версии языка и шаги установки с локальным окружением. В качестве последней опции создайте новое виртуальное окружение или свежий клон проекта и повторите установку.

Как избежать повторения

  • Всегда выполняйте `npm install` или `pip install -r requirements.txt` после загрузки проекта
  • Зафиксируйте версии зависимостей (`package-lock.json`, `requirements.txt`) и храните их в репозитории
  • Используйте виртуальное окружение для Python и `nvm` для Node.js
  • Проверяйте, что вы в корне проекта, перед выполнением команд

Когда лучше обратиться к специалисту

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

Разработка ПО и продуктов · Приложения на заказ, SaaS и MVP за 4-8 недель

Частые вопросы

Почему возникает ошибка Module not found, если пакет установлен?

Чаще всего потому, что команда использует другое окружение, отличное от того, в которое установлен пакет. Проверьте, активно ли виртуальное окружение или находитесь ли вы в правильной папке проекта.

Безопасно ли удалять node_modules и package-lock.json?

Обычно да, но сначала сделайте резервную копию проекта или проверьте, что он сохранён в Git-репозитории. Удаление `package-lock.json` может изменить версии зависимостей; после удаления снова выполните `npm install`, чтобы зависимости установились из `package.json`.

Как узнать, какой модуль отсутствует, если ошибка неясна?

Запустите приложение из терминала и прочитайте последнюю строку ошибки; там обычно указано имя модуля. В Python можно выполнить `python -v` для более подробного вывода импорта.

Поделиться
Не нашли решение?ИИ-помощник работает 24/7. Опишите проблему или отправьте скриншот ошибки и получите инструкцию для вашего случая.Спросить ИИ-помощника