Что такое «дополнительный» в зависимости от Pypi? - PullRequest
0 голосов
/ 24 сентября 2018

В разделе requires_dist ответа json пакета от pypi дается:

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

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

1 Ответ

0 голосов
/ 24 сентября 2018

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

Вы можете установить их с именем после ==, с названием пакета.Например, если вы устанавливаете 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 к списку объектов для установки.

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

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

...