Python WindowsLinuxmacOSPython 3

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

  • Обновлено
  • Чтение ≈ 2 минуты

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

Установленный пакет может содержать другие имена модулей, быть установлен в другом Python или иметь ошибку во вложенной зависимости: нужно отличать отсутствие пакета от неправильного имени импорта.

В этой статье
  1. Что произошло и когда проявляется ошибка
  2. Причины и диагностические признаки
  3. Подробная пошаговая диагностика и исправление
  4. Как проверить, что проблема устранена
  5. Если исправление не помогло

#Что произошло и когда проявляется ошибка

Установленный пакет может содержать другие имена модулей, быть установлен в другом Python или иметь ошибку во вложенной зависимости: нужно отличать отсутствие пакета от неправильного имени импорта.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Имя в pip отличается от имени модуляИмя дистрибутива и имя импортируемого модуля не обязаны совпадать.pip show находит пакет, а import по тому же имени не работаетПроверить описание и пример импорта в документации пакета.
Пакет в другом окруженииИспользуется разный sys.executable.python -m pip show в одной среде даёт результат, а в другой нетУстановить зависимость в среду запуска.
Вложенная зависимость отсутствуетКод внутри установленного пакета импортирует отдельную зависимость.В traceback указан не тот модуль, который импортировалиСмотреть всю цепочку импорта и метаданные зависимостей.

#Подробная пошаговая диагностика и исправление

  1. 1. Сохраните исходный tracebackЗапустите тот же скрипт в терминале, где ошибка возникает. Скопируйте последнюю строку с No module named ... и несколько строк выше. Если импорт был import PIL, а пакет в менеджере называется Pillow, это не ошибка Python: проверьте указанное автором имя импортируемого модуля.
  1. 2. Сверьте Python и пакетВыполните команды одним интерпретатором. python -m pip show принимает имя установленного дистрибутива, которое может отличаться от текста после import. sys.executable поможет исключить другое окружение.
    Linux · Терминал (Bash)Команда
    Pillow — только пример; замените на имя вашего дистрибутива.
    python -c "import sys; print(sys.executable)"
    python -m pip show Pillow
  1. 3. Найдите имя импорта в официальном примере пакетаОткройте документацию установленной библиотеки и найдите образец импорта. Для Pillow нормален from PIL import Image, а import Pillow неверен. Не угадывайте имя автоматически из названия в pip; имя иногда относится к нескольким модулям.
  2. Пример только при установленном Pillow; никакие изображения не открываются
    Python
    Пример только при установленном Pillow; никакие изображения не открываются.
    from PIL import Image
    print(Image.__name__)
  1. 4. Проверьте конфликт имён файловУбедитесь, что в папке проекта нет своего PIL.py, requests.py, typing.py или каталога с совпадающим именем, который перекрывает пакет. Временно переименуйте только свой файл и поправьте импорты; не удаляйте файлы из системного site-packages.
  2. Если возвращается None, имя импорта не найдено текущим интерпретатором
    Python
    Если возвращается None, имя импорта не найдено текущим интерпретатором.
    import importlib.util
    print(importlib.util.find_spec("PIL"))
  1. 5. Исправьте причину и протестируйте цепочкуЕсли отсутствует вложенная зависимость, ознакомьтесь с требованиями и дополнительными возможностями пакета; установите нужный комплект в тестовую среду. После исправления запустите простой импорт, затем целевую функцию проекта на тестовых данных и проверьте весь traceback при новом сбое.

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

Реальная команда импорта из документации библиотеки выполняется в Python приложения; нет скрытой ошибки во вложенных импортируемых модулях.

#Если исправление не помогло

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

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.