pypi 依赖中的 'extra' 是什么?
What is 'extra' in pypi dependency?
在来自 pypi 的包的 json 响应的 requires_dist
部分,给出:
requires_dist : [
"bcrypt; extra == 'bcrypt'",
"argon2-cffi (>=16.1.0); extra == 'argon2'"
]
谁能说清楚每个依赖的第二个语句,extra == 'bcrypt'
和extra == 'argon2'
?
Extras 是您可以安装 除了 常规依赖项之外的依赖项,如果您明确要求它们。将它们视为可选功能。
您可以使用 ==
之后的名称安装这些软件包名称。例如,如果您安装 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 到要安装的东西列表。
参见 Installing Setuptools "Extras" in the Installing Packages section of the Python Packaging User Guide。
安装包本身会检测是否安装了可选额外功能的所有依赖项。一种常见的模式是使用 try...except ImportError:
守卫来测试此类额外依赖项是否可用。
在来自 pypi 的包的 json 响应的 requires_dist
部分,给出:
requires_dist : [
"bcrypt; extra == 'bcrypt'",
"argon2-cffi (>=16.1.0); extra == 'argon2'"
]
谁能说清楚每个依赖的第二个语句,extra == 'bcrypt'
和extra == 'argon2'
?
Extras 是您可以安装 除了 常规依赖项之外的依赖项,如果您明确要求它们。将它们视为可选功能。
您可以使用 ==
之后的名称安装这些软件包名称。例如,如果您安装 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 到要安装的东西列表。
参见 Installing Setuptools "Extras" in the Installing Packages section of the Python Packaging User Guide。
安装包本身会检测是否安装了可选额外功能的所有依赖项。一种常见的模式是使用 try...except ImportError:
守卫来测试此类额外依赖项是否可用。