pypi依赖中的“额外”是什么?

2024-05-26 11:09:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在来自pypi的包json响应的requires_dist部分中,给出了:

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

有人能把每个依赖项的第二个语句extra == 'bcrypt'extra == 'argon2'弄清楚吗?在


Tags: pypijsondist语句cffiextrarequiresbcrypt
1条回答
网友
1楼 · 发布于 2024-05-26 11:09:33

extra是一种依赖项,如果您明确要求,您可以在常规依赖项上安装。将它们视为可选功能。在

您可以使用==后面的名称和包的名称来安装这些文件。例如,如果您安装somepackage,并希望添加bcrypt可选功能,请使用:

pip install somepackage[bcrypt]

或者

^{pr2}$

或者,要包括两个可选的附加项,请用逗号分隔名称:

^{3}$

虽然多次使用somepackage[...]也起到了^{的作用,但它足够聪明,可以知道主包已经安装。在

pip(或其他任何包安装工具)将<packagename>[<extras_name>(,...)]中列出的名称映射到{}中使用<dependency_spec>; extra == '<extras_name>'格式的条目,并将dependency_spec添加到要安装的内容列表中。在

请参见Python Packaging User Guide安装包部分中的Installing Setuptools "Extras"。在

由安装的软件包本身来检测是否安装了可选附加功能的所有依赖项。一个常见的模式是使用try...except ImportError:保护来测试是否存在这种额外的依赖关系。在

相关问题 更多 >