Что такое "дополнительный" в зависимости от 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_spec
s к списку вещей для установки.
См. Раздел " Установка дополнительных инструментов" в разделе " Установка пакетов " Руководства пользователя по пакетам Python.
Это зависит от самого установленного пакета, чтобы определить, установлены ли все зависимости для дополнительных функций. Распространенным примером является использование try...except ImportError:
охранники, чтобы проверить наличие таких дополнительных зависимостей.