Что такое "дополнительный" в зависимости от Pypi?

В requires_dist раздел json-ответа пакета от pypi, он имеет вид:

requires_dist : [
    "bcrypt; extra == 'bcrypt'",
    "argon2-cffi (>=16.1.0); extra == 'argon2'"
]

может кто-нибудь прояснить второе утверждение каждой зависимости, extra == 'bcrypt' а также extra == 'argon2'?

1 ответ

Решение

Дополнительно - это зависимости, которые вы можете установить в дополнение к обычным зависимостям, если вы запрашиваете их явно. Смотрите их как дополнительные функции.

Вы можете установить их с именем после ==, с названием пакета. Например, если вы установите somepackage и хочу добавить bcrypt дополнительная функция, используйте:

pip install somepackage[bcrypt]

или же

pip install somepackage[argon2]

или, чтобы включить оба необязательных дополнения, разделяйте имена запятыми:

pip install somepackage[bcrypt,argon2]

хотя использую somepackage[...] несколько раз также работает как pip достаточно умен, чтобы знать, что основной пакет уже установлен.

pip (или любой другой инструмент для установки пакетов) отображает имена, перечисленные в <packagename>[<extras_name>(,...)] к этим записям в requires_dict которые используют <dependency_spec>; extra == '<extras_name>' формат, добавив на dependency_specs к списку вещей для установки.

См. Раздел " Установка дополнительных инструментов" в разделе " Установка пакетов " Руководства пользователя по пакетам Python.

Это зависит от самого установленного пакета, чтобы определить, установлены ли все зависимости для дополнительных функций. Распространенным примером является использование try...except ImportError: охранники, чтобы проверить наличие таких дополнительных зависимостей.

Другие вопросы по тегам