Python: предотвращение ошибок импорта

Python: предотвращение ошибок импорта

Содержание
  1. Что такое импорт?
  2. Завершение

В этой серии статей я уже утверждал, что в сценариях на Python нужно отлавливать ошибки.

Это не только улучшает работу пользователей, но и может сэкономить ваше драгоценное время, если вы оказываете поддержку.

Что такое импорт?

Импорт может заключаться в вызове стороннего пакета в вашем скрипте, чтобы ускорить разработку или избежать повторного изобретения колеса.

В Python это обычно делается так:

import my_awesome_package

Но вы также можете назвать его псевдонимом:

import my_awesome_package as another_name

Когда вы начинаете делиться своим кодом, вам нужно рассказать людям, как установить все зависимости, чтобы избежать ошибок импорта.

Действительно, если “my_awesome_package” - это сторонний пакет, который не предустановлен с Python, пользователи получат фатальную ошибку.

К счастью, в Python есть собственный менеджер пакетов Pip, который поставляется вместе с Python, поэтому разработчики Python обычно помещают файл requirements.txt в корень своих проектов, чтобы указать сторонние модули для установки.

После этого пользователям достаточно будет выполнить следующую команду:

pip install -r requirements.txt

Разработчики ленивы, как и пользователи

Мы все знаем, что нужно читать потрясающую документацию (RTFM), но на практике часто ее пропускаем.

Хорошо это или плохо (в основном плохо) - не наша проблема. Люди просто делают это.

Однако вы можете добавить несколько дополнительных проверок:

import sys

try:
    import my_awesome_package
except ModuleNotFoundError:
    print("Please run 'pip install -r requirements.txt' to use this script.")
    sys.exit(1)

Хотя это и не является официальной рекомендацией в документации, я люблю включать такую проверку.

Завершение

Вылавливание ошибок импорта может быть полезным, даже если это добавит несколько строк в ваш сценарий.