Repolode
pydoit

pydoit/doit

用纯 Python 定义任务的自动化与构建工具,只重新执行已变化的部分。

Star
2,098
Fork
204
未关闭 Issue
112
最近提交
2个月前

这是什么?

doit 是一个类似 make 的任务管理与自动化工具,但任务直接用普通 Python 函数和字典编写,不需要专门的 DSL 或 YAML。任务声明在 dodo.py 文件中,doit 按依赖顺序执行它们。

它会跟踪文件依赖和目标产物,缓存结果,并跳过输入自上次运行后未变化的任务。一个函数可以生成多个子任务,通过 calc_dep 动态计算依赖关系,还支持使用多进程或多线程并发执行独立任务。

工具提供插件机制,可扩展命令、报告器、后端和任务加载器。任务中的代码可以直接调用任意 Python 库。

核心功能

  • 01增量构建,只重新执行依赖发生变化的任务
  • 02任务用普通 Python 函数和字典定义
  • 03按依赖关系顺序执行任务图
  • 04支持通过多进程或多线程并行执行
  • 05可用 yield 生成子任务,并通过 calc_dep 动态计算依赖
  • 06提供命令、报告器、后端和任务加载器的插件机制

适用场景

  • 为需要基于文件变化做增量构建的项目自动化构建步骤
  • 编排用 Python 编写的数据处理流水线
  • 用带依赖感知的 Python 任务替代零散的 shell 脚本

快速上手

  1. 1

    从 PyPI 安装 doit

    pip install doit
  2. 2

    创建包含任务函数的 dodo.py 文件(参见 README 中的快速示例)

  3. 3

    在包含 dodo.py 的目录中运行 doit

    doit

收录于专题

标签

常见问题

doit 是什么?
用纯 Python 定义任务的自动化与构建工具,只重新执行已变化的部分。 doit 是一个类似 make 的任务管理与自动化工具,但任务直接用普通 Python 函数和字典编写,不需要专门的 DSL 或 YAML。任务声明在 dodo.py 文件中,doit 按依赖顺序执行它们。
doit 可以免费使用吗?用的什么许可证?
doit 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
doit 还在维护吗?
半年内有更新。doit 最近一次提交是在 2026年9月21日。
doit 适合用来做什么?
为需要基于文件变化做增量构建的项目自动化构建步骤 编排用 Python 编写的数据处理流水线 用带依赖感知的 Python 任务替代零散的 shell 脚本
doit 怎么安装和运行?
从 PyPI 安装 doit: pip install doit 创建包含任务函数的 dodo.py 文件(参见 README 中的快速示例) 在包含 dodo.py 的目录中运行 doit: doit
在哪里获取 doit?
源代码和安装说明在 GitHub 上:https://github.com/pydoit/doit

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目