#Что происходит и когда возникает ошибка
pip сообщает Successfully installed, но import выдаёт ошибку. Помимо выбора Python, причина может быть в имени импортируемого модуля, отсутствующей системной библиотеке или сбое при выполнении кода импорта.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Неверное имя importДистрибутив и Python-модуль могут называться по-разному. | pip show находит пакет, а ModuleNotFoundError указывает другое имя | Сверить инструкцию разработчика библиотеки. |
| Ошибка возникает внутри пакетаУстановка прошла, но библиотека или её зависимость несовместима. | Стек проходит в site-packages и заканчивается ImportError/AttributeError | Разобрать внутренний стек, версию и зависимости. |
| Не загружается нативный модульТребуются совместимые двоичные файлы и системные библиотеки. | DLL load failed или cannot open shared object file | Проверить ABI, платформу и официальные требования. |
#Подробная диагностика и исправление
- Сохраните полный стекЗапустите именно тот
import, который не работает, и запишите всё сообщение, а не только последнюю строку.ModuleNotFoundErrorдля верхнего имени иImportErrorвнутри установленного пакета требуют разных действий.
- Сравните пакет и интерпретаторВ терминале того же окружения выполните команды.
Locationдолжен относиться к Python изsys.executable, аVersion— к тому выпуску, который ожидает проект.Linux · Терминал (Bash)КомандаКоманды чтения, без прав администратора.python -c "import sys; print(sys.executable)"python -m pip show ИМЯ_ДИСТРИБУТИВА
- Найдите официальное имя импортируемого модуляОткройте документацию библиотеки, найдите пример
import .... Не выводите имя из названия пакета механически: некоторые дистрибутивы используют другой модуль, а некоторые вообще являются метапакетами без импортируемого имени.
- Запустите из чистой папкиПерейдите в другую временную папку, где нет файлов проекта, и повторите минимальный импорт с тем же Python. Если импорт заработал, проверьте локальные файлы вроде
typing.py,email.py,json.py, затеняющие пакеты. Переименуйте конфликтующий файл только на копии проекта.
- Проверьте зависимости установленных пакетовВыполните
python -m pip check: строкаNo broken requirements found.означает отсутствие обнаруженных конфликтов метаданных, но не доказывает, что двоичные библиотеки доступны. При конфликтах исправьте конкретный пакет из вывода.Linux · Терминал (Bash)КомандаТот же Python, что выполняет import; не меняет пакеты.python -m pip check
- Для нативной ошибки сверяйте платформуЕсли текст содержит
DLL load failedили.so: cannot open, проверьте архитектуру Python, совместимость колеса и системные библиотеки по инструкции разработчика пакета. Не скачивайте случайные DLL в System32. При неуспехе вернитесь к поддерживаемой комбинации Python/пакета в тестовой среде.
- Повторите прикладной тестПосле исправления запустите не только
import, но и минимальную рабочую операцию из документации: одна только загрузка модуля не проверяет его API. Если ошибка осталась, приложите очищенный стек, версию Python и имя пакета к обращению разработчику.
#Проверка результата и действия при неуспехе
Импорт и минимальная функция пакета выполняются именно из нужного окружения, без новых исключений.
Если исправление не помогло, вернитесь к точному сообщению об ошибке, сохраните версию Python, адрес целевого окружения и очищенный от секретов журнал; выясните, на каком шаге результат отличается от ожидаемого. Не изменяйте глобальный Python ради устранения сбоя проекта.