Python 与 2025 年的制造(Make)

作者是 GNU Make 的超级粉丝,将其用作管理所有项目的顶级编排和自动化工具,不论项目大小。之前写过关于如何使用 Make 的文章,此篇重点强调工作流程的几个关键改进使其更轻量和易用。

  • 为何在顶部添加另一个工具:有两个主要好处,一是工具既是文档也是自动化,二是在项目特定工作流程之上运行一层。作者喜欢 Make 是因为它能记录项目所需做的事及如何做,还可用于项目的元管理,如在 H2O Wave 项目中通过make helpMakefile快速了解运行命令,以及通过 Make 轻松创建和重建虚拟环境等。
  • 2025 年工作流程的变化:2024 年初写过使用 Make 的文章,之后有两点变化,一是极大简化了 Makefile 的编写,避免复杂的help规则和将复杂项目自动化推给其他工具,使 Make 成为管理项目的唯一接口和入口点;二是切换到uv,它极大提高了生活质量,速度快且兼容pip,能创建虚拟环境和管理 Python 解释器,如uv venv --seed --managed-python --python 3.10
  • 工作流程

    • 前提条件:系统级别需安装 Make、Ripgrep、uv 等工具,可通过标准包管理器安装。
    • Makefile:是任何新项目的起点,通常包含 4 个规则,如PY=3.10help规则通过rg搜索 Makefile 中的目标,.venv规则创建虚拟环境,install规则安装项目依赖,destroy规则删除虚拟环境。
    • 常见问题:对于大型复杂项目的自动化工作流,在 Makefile 中捕获复杂逻辑并跨操作系统运行很困难,作者将其委托给invoke工具,如 Python 项目的打包工作可在invoketasks.py文件中处理,Makefile 只需调用invoke build
阅读 205
0 条评论