2.4万Star的Cookiecutter,用模板一键生成项目骨架
文章目录2.4万Star的Cookiecutter用模板一键生成项目骨架核心机制模板目录加变量文件三种调用方式Hooks 负责模板之外的事情几个值得关注的模板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/还能在代码中调用方便集成到内部工具链fromcookiecutter.mainimportcookiecutter cookiecutter(gh:audreyfeldroy/cookiecutter-pypackage)安装只需要一行uv tool install cookiecutter跨平台兼容 Windows、Mac、Linux支持的 Python 版本从 3.10 覆盖到 3.14。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 年开始维护至今仍在更新。对于需要频繁初始化新项目的场景这是一个经过充分验证的工具选项。2013 年开始维护至今仍在更新。对于需要频繁初始化新项目的场景这是一个经过充分验证的工具选项。