Ответ 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 запускает и загружает зависимости.