用于配置命令之间依赖关系的setuptools插件
setuptools-cmd-deps的Python项目详细描述
setuptools命令deps
{1}$
轻松配置setuptools
命令依赖项。在
为什么我需要这个插件
一旦自定义setuptools
命令被定义并且需要在某个内置命令之前运行,
传统上,没有简单的方法,解决方案是重写内置命令,
在超级类中实现的命令之前调用新的自定义命令。在
通过这种方式,拥有一个额外的类并深入研究setuptools
,
只是配置命令顺序或依赖关系。在
这可以通过使用setuptools-cmd-deps
来简化:
启用插件并添加自定义配置。在
项目中的命令依赖关系
如果你的命令只是为了这个项目而不被重用,
您可以使用新的setup关键字cmd_deps
来定义依赖关系。在
启用setuptools cmd deps
- 在
如果您的
在setup.py
只在安装了所有依赖的软件包之后运行, 在依赖项列表中添加setuptools-cmd-deps
, 例如requirements.txt
,或Pipfile
。在 - 在
如果您的
在setup.py
支持耗尽venv, 您可能不希望在系统中安装这些软件包。 然后将setuptools-cmd-deps
添加到setuptools
的setup_requires
选项中。在
定义依赖关系
setuptools.setup(cmdclass={'generate_py':GenereatePy},cmd_deps={'build_py':['generate_py']},)
要共享的命令依赖项
如果您正在开发一个setuptools
插件,
并希望命令定义被其他项目使用并在某个命令之前运行,
在entry_points
中的setuptools.cmd_deps
部分中指定依赖关系。在
为目标启用setuptools cmd deps
将setuptools-cmd-deps
添加到setuptools
的install_requires
选项中,
因此,任何项目使用您的包时,都将自动使用setuptools-cmd-deps
。在
定义依赖关系
一般来说,您的distutils.commands
中已经有{
例如,您在entry_points
中定义了gernate_py
命令,如下所示:
希望它总是在build_py
之前运行。
只需在entry_points
中添加setuptools.cmd_deps
,如下所示
setuptools.cmd_deps =
build_py_dep = build_py:generate_py
注意这里没有使用名称build_py_dep
。
它只是针对TOML语法。
出于同样的原因,如果一个命令有多个依赖项,
它应该使用点.
作为分隔符
setuptools.cmd_deps =
command_dep = command:cmd1.cmd2
cmd1
和{
或者你可以有多种规则
setuptools.cmd_deps =
command_dep1 = command:cmd1
command_dep2 = command:cmd2
- 项目
标签: