Python Glossary English

Python 3.6+Исключенияисключение

ModuleNotFoundError

встроенные исключения

Подкласс ImportError. Вызывается, когда модуль вообще не найден в sys.path. Python 3.6+.

Синтаксис

raise ModuleNotFoundError('No module named ...')

Чаще всего проблема не в том, что библиотеки нет, а в том, что она установлена не в тот интерпретатор, которым вы запускаете код: другой venv, другой pip, запуск из PyCharm против запуска из терминала. Отдельный except ModuleNotFoundError нужен редко — он подкласс ImportError, поэтому except ImportError его уже перехватывает. Разделять их имеет смысл, когда важно отличить «пакета нет вовсе» от «пакет есть, но внутри него нет нужного имени» — второе даёт чистый ImportError.

Примеры

import nonexistent_lib      # ModuleNotFoundError
try:
    import pandas
except ModuleNotFoundError:
    print('установи: pip install pandas')

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности