用于配置命令之间依赖关系的setuptools插件

setuptools-cmd-deps的Python项目详细描述


setuptools命令deps

{1}$ pypi

轻松配置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添加到setuptoolssetup_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添加到setuptoolsinstall_requires选项中, 因此,任何项目使用您的包时,都将自动使用setuptools-cmd-deps。在

定义依赖关系

一般来说,您的distutils.commands中已经有{}。在

例如,您在entry_points中定义了gernate_py命令,如下所示:

^{pr2}$

希望它总是在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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android Studio中使用while循环显示包含textview对象的数据   创建名为“userController”的bean时发生java错误:通过字段“userService”表示未满足的依赖关系   java PDFBox PDFImageWrite。writeImage未正确处理所有字符   java无法识别代码中的nzec错误   无法更改java TabLayout字体   在Java中使用子字符串删除部分字符串   Java中的listener addPropertyChangeListener方法   java可以同时拖动多个对象   java如何将数组中的值添加到向量中   java为什么在Camel 3.7.3中无法正确计算属性?   与后端问题不同的机器中的java客户端资源   带字符串的java分割字节数组?   java On_选项_项目_选择的方法说明   java如何在画布的父画中画一个圆?   连接超时和打开连接数的java Netty通道配置   java mysql中如何防止向数据库中插入重复数据   升级到macOS Big Sur后,java无法启动Neo4j控制台应用程序   在Java中使用XSLT将XML转换为HTMLString的ajax   java无法使用Apache POI获取Excel工作表中的数据