Все статьи
21 сентября 2026 г.·4 мин чтения

ModuleNotFoundError: No module named — почему pip install не помогает и как найти нужный Python

Разбор ошибки No module named в Python: пакет поставлен в другой интерпретатор, venv не активирован, VS Code или Jupyter смотрят не туда, имя модуля отличается от имени пакета. Проверка за одну команду и таблица cv2, PIL, sklearn, docx.

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import pandas
ModuleNotFoundError: No module named 'pandas'

Первая реакция — pip install pandas. Пакет ставится, пишет Successfully installed, а ошибка остаётся. Так почти всегда потому, что pip поставил пакет в один Python, а скрипт запускается другим. На Windows их бывает три-четыре одновременно: с python.org, из Microsoft Store, внутри Anaconda, в виртуальном окружении проекта.

Проверка за одну команду

Выясни, какой Python на самом деле запускает твой код. Добавь в начало скрипта две строки:

import sys
print(sys.executable)

Или выполни то же в терминале, где запускаешь скрипт:

python -c "import sys; print(sys.executable)"
pip --version

pip --version в конце строки показывает, к какому Python он привязан. Если пути разные, причина найдена. Надёжное правило на будущее — ставить пакеты тем же интерпретатором, которым запускаешь код:

python -m pip install pandas

Если скрипт запускается через лаунчер py, то и пакет ставь им: py -m pip install pandas. Можно и полным путём, который напечатал sys.executable: C:\путь\к\python.exe -m pip install pandas.

Пять частых причин

Где запускаешьЧто обычно не такЧто сделать
Терминал, проект с venvОкружение не активировано, и pip поставил пакет в системный Python.\venv\Scripts\activate, потом снова pip install. Если активация падает с «выполнение сценариев отключено», читай отдельную статью
VS CodeВнизу справа выбран не тот интерпретаторCtrl+Shift+P → «Python: Select Interpreter» → выбери venv проекта
PyCharmВ настройках проекта свой интерпретаторSettings → Project → Python Interpreter, ставь пакет прямо оттуда
Jupyter NotebookЯдро не то, в котором стоит пакетПрямо в ячейке %pip install pandas, затем перезапусти ядро
Двойной клик по .pyWindows открывает его «Python по умолчанию», не тем, что в терминалеЗапускай из терминала или ставь пакет в интерпретатор, который печатает sys.executable

Имя модуля ≠ имя пакета

Вторая по частоте причина: в import одно имя, а в pip install нужно другое. pip install cv2 просто не найдёт пакета, а иногда найдёт чужой.

В кодеСтавить
import cv2pip install opencv-python
from PIL import Imagepip install Pillow
import sklearnpip install scikit-learn
import yamlpip install PyYAML
from bs4 import BeautifulSouppip install beautifulsoup4
import docxpip install python-docx
from dotenv import load_dotenvpip install python-dotenv
import telegrampip install python-telegram-bot
import win32apipip install pywin32
import fitzpip install PyMuPDF

Если модуля нет в таблице, поищи его на pypi.org или посмотри requirements.txt проекта, откуда взят код.

Когда пакет точно стоит, а ошибка остаётся

Файл назван как модуль. Скрипт pandas.py, telegram.py или random.py перекрывает настоящую библиотеку: Python импортирует твой файл вместо неё. Переименуй его и удали папку __pycache__ рядом.

Нет модуля внутри пакета. No module named 'telegram.ext' при установленном telegram обычно значит, что стоит не тот пакет или старая версия. Удали и поставь заново: python -m pip uninstall telegram python-telegram-bot, потом python -m pip install python-telegram-bot.

Относительные импорты. No module named 'utils' при файле utils.py в соседней папке — это про то, откуда ты запускаешь скрипт. Запускай из корня проекта (python -m app.main) или положи файлы в одну папку.

Версия Python слишком новая. Некоторые пакеты выходят под новый Python с задержкой. pip тогда пытается собрать пакет из исходников и падает с failed building wheel, а в коде остаётся No module named. Смотри вывод pip целиком, а не последнюю строку.

Если pip сам не запускается

"pip" не является внутренней или внешней командой — это уже вопрос PATH, а не модуля. python -m pip ... работает и без PATH к pip. Если не находится и сам python, Windows может перехватывать команду заглушкой Microsoft Store. Отключается в «Параметры → Приложения → Дополнительные параметры приложений → Псевдонимы выполнения приложений»: выключи оба пункта python.exe и python3.exe.

Отдать это агенту

Вся диагностика выше — это пять-шесть команд, которые надо запустить в правильном порядке и прочитать результат. Дока делает это на твоём компьютере: открой папку проекта и напиши «скрипт падает с No module named pandas, почини». Агент проверит sys.executable, найдёт venv, поставит пакет в нужный интерпретатор и запустит скрипт ещё раз. Каждую команду ты видишь до запуска и подтверждаешь сам.

Если пишешь первого бота, пригодится статья про Telegram-бота на aiogram.