Что означает "__requires__" в python?

Я новичок в python.

Может ли кто-нибудь ответить, что означает __requires__ в следующем коде? Почему они помещают __requires__ = 'flower==0.4.0' в начало файла?

#!/srv/virtualenvs/zeusenv/bin/python

__requires__ = 'flower==0.4.0'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('flower==0.4.0', 'console_scripts', 'flower')()
)

Ответы

Ответ 1

Строка __requires__ является частью сгенерированной консоли script. Он не имеет никакого значения для самого Python, только библиотека setuptools использует эту информацию.

Консольные скрипты представляют собой скрипты python, определенные в метаданных пакета python, и setuptools устанавливает файлы оболочки script, чтобы вы могли запускать их как сценарии командной строки. Файл flower, установленный в вашем virtualenv, представляет собой script, определенный файлом flower package setup.py.

Модуль pkg_resources, импортированный в оболочку script, проверяет значение __requires__ в главном script, чтобы убедиться, что правильная версия библиотеки доступна и загружена до функции load_entry_point (или любой другая функция pkg_resources). Он не будет устанавливать указанную версию, предполагается, что эта версия уже установлена ​​в вашей системе. Цель состоит в том, чтобы избежать загрузки некорректных, несовместимых ресурсов, когда script запускает и загружает зависимости.