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Сообщить о неточности