2.4万Star的Cookiecutter,用模板一键生成项目骨架

2.4万Star的Cookiecutter,用模板一键生成项目骨架

每次开新项目,建目录、写初始化脚本、配 lint 规则,这些步骤重复做几十次之后,人就会想:能不能把这些固定流程抽成一个模板,下次直接复用。Cookiecutter 干的正是这件事。目前 2.4 万 Star,在 GitHub 的项目脚手架工具里排名靠前。

正文顶部截图

核心机制:模板目录加变量文件

Cookiecutter 把一个项目的初始文件结构打包成模板。模板目录里有一份 cookiecutter.json,里面声明所有需要用户填写的变量和默认值。运行命令后,工具逐项提问,用户回答完毕,项目骨架就生成好了。

这个机制覆盖所有语言和框架。Python 包、Rust crate、Terraform 配置、Sphinx 文档站点,都可以做成模板。GitHub 搜索 cookiecutter 能翻出数千个现成的模板仓库,社区维护了十二年,积累量相当可观。

三种调用方式

命令行直接引用 GitHub 仓库,用 gh: 前缀即可:

uvx cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

本地模板路径也可以:

uvx cookiecutter cookiecutter-pypackage/

还能在代码中调用,方便集成到内部工具链:

from cookiecutter.main import cookiecutter
cookiecutter('gh:audreyfeldroy/cookiecutter-pypackage')

安装只需要一行 uv tool install cookiecutter,跨平台兼容 Windows、Mac、Linux,支持的 Python 版本从 3.10 覆盖到 3.14。

README区域截图

Hooks 负责模板之外的事情

生成目录只是第一步。接下来往往要 git init、装依赖、配置虚拟环境。Cookiecutter 提供了 pre-generate 和 post-generate hooks,支持 Shell 和 Python 脚本。这些 hooks 在模板生成前后自动触发,把生成之后的初始化步骤也一并托管。

对团队来说,新成员入职时不用照着文档一步步搭环境,跑一条命令就完成全部初始化。对开源项目,贡献者省去了环境配置的摩擦,更容易进入开发状态。

几个值得关注的模板

社区里知名度较高的模板有几个:cookiecutter-pypackage 是 Python 包的标准范本,cookiecutter-django 提供 Django 项目的完整脚手架,cookiecutter-pytest-plugin 专门用于创建 pytest 插件。

如果公司有内部技术栈,花少量时间写一个模板,把 lint 配置、CI 脚本、目录规范全部固化进去,后续所有项目就自动对齐了。这种方式比每次口头约定"参照上次项目搭建"要稳定。

Cookiecutter 从 2013 年开始维护,至今仍在更新。对于需要频繁初始化新项目的场景,这是一个经过充分验证的工具选项。

posted @ 2026-06-18 10:05  小飞技术快餐  阅读(5)  评论(0)    收藏  举报