#Что происходит и как распознать неисправность
pip сообщает Successfully installed, но при запуске возникает ModuleNotFoundError. Такое бывает, когда терминал, IDE и программа используют разные интерпретаторы, включая системный Python и отдельные venv.
#Как отличить причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
pip из другого PythonКоманда pip доступна из одного окружения, а программа запускается другим интерпретатором. | Пути из pip --version и sys.executable расходятся. | Вызывайте pip через python -m pip от выбранного Python. |
| IDE запускает другое окружениеВыбранный интерпретатор редактора отличается от открытого терминала. | Встроенный терминал импортирует пакет, кнопка «Запустить» — нет. | Выберите Python проекта в настройках IDE. |
| Имя дистрибутива и модуля различаютсяДля установки и импорта иногда используются разные названия. | pip show находит пакет, но import другого имени не работает. | Сверьте импорт с документацией библиотеки. |
#Пошаговая диагностика и исправление
- Определите Python, запускающий проблемный файлОткройте проект в редакторе и добавьте на время строку
import sys; print(sys.executable)перед проблемным импортом, затем запустите файл тем же способом, что обычно. Запишите выведенный абсолютный путь и верните исходный код после диагностики. Если строка не появляется, вероятно, исполняется другой файл — проверьте настройки запуска. - Проверьте Python в открытом терминалеОткройте встроенный терминал редактора («Терминал → Создать терминал» в VS Code) или обычный терминал системы. Выполните
python -c "import sys; print(sys.executable)"(на Linux может потребоватьсяpython3). Сравните путь с предыдущим результатом: различие подтверждает два независимых окружения. Если Python не найден, узнайте фактическую команду запуска проекта. - Проверьте pip у правильного интерпретатораИспользуя точный путь из запуска приложения, выполните команду вида
/путь/к/.venv/bin/python -m pip --version(Windows:.venv\Scripts\python.exe -m pip --version). Вы увидите версию pip и каталог установки; он должен относиться к нужному окружению. Это безопасная проверка, администратор не нужен. Если написаноNo module named pip, пересоздайте или восстановите venv штатным способом, не используйте sudo. - Проверьте, установлен ли нужный дистрибутивЗапустите тот же интерпретатор с
-m pip show ИМЯ_ПАКЕТА, подставив имя пакета из документации. Смотрите поле Location. ЕслиPackage(s) not found, пакет установлен не туда или отсутствует. Если Location относится к нужному venv, проверьте точное имя импорта и локальный файл с тем же именем, затеняющий пакет. - Установите зависимость только в окружение проектаОткройте папку проекта, посмотрите
requirements.txtилиpyproject.tomlи правила проекта. Если пакет отсутствует именно в активном venv, выполните через выбранный Python-m pip install ИМЯ_ПАКЕТАс согласованной версией. Для проекта с requirements предпочтительнее-m pip install -r requirements.txt. Не запускайте эту команду через sudo и не меняйте системную установку Python. - Настройте интерпретатор редактораВ VS Code нажмите Ctrl+Shift+P, начните вводить
Python: Select Interpreterи выберите Python из.venvданного проекта; при отсутствии команды проверьте наличие официального расширения Python. В PyCharm откройте «Настройки → Project → Python Interpreter» (подписи зависят от версии) и выберите действующий venv. После выбора снова запустите файл кнопкой редактора. - Повторите импорт и проверьте возврат измененийВ том же режиме, где ошибка воспроизводилась, импортируйте модуль. Успешный импорт без ModuleNotFoundError и путь
sys.executableиз нужного окружения подтверждают исправление. Если проблема осталась, восстановите выбранный ранее интерпретатор в редакторе и проверьте конфликт имени файла с библиотекой; не удаляйте папку venv с незаписанными зависимостями.
#Команды и примеры для проверки
requests — пример существующего имени пакета, заменяйте его нужным; команды ничего не устанавливают.python -c "import sys; print(sys.executable)"python -m pip --versionpython -m pip show requests#Как проверить результат и что делать дальше
Проверьте импорт командой python -c "import ИМЯ_МОДУЛЯ" именно через правильный Python; замените ИМЯ_МОДУЛЯ на действительное имя из документации, без дефисов в синтаксисе импорта. Если пакет доступен только в терминале, но не в IDE, снимите пути sys.executable в обоих местах и исправьте выбор интерпретатора.