cookiecutter-pypackage:Python 包项目模板

发布时间:2026/6/18 21:15:21
cookiecutter-pypackage:Python 包项目模板 文章目录cookiecutter-pypackagePython 包项目模板cookiecutter-pypackagePython 包项目模板audreyfeldroy/cookiecutter-pypackage 是一个基于 Cookiecutter 的 Python 包项目模板目前累计 4,579 个 Star这个模板的目标是为 Python 开发者提供一个可直接投入生产的项目起点。它基于 Cookiecutter 构建通过交互式命令行引导用户填写项目基本信息随后生成一个包含完整工具链和自动化流程的代码仓库。模板内置的开发工具覆盖了包管理的各个环节。包管理使用 uv它在处理依赖的同时自动维护虚拟环境省去了手动激活和切换的步骤。代码格式化与静态检查由 ruff 负责ruff 将原本需要多个工具分别完成的任务合并为一条命令。类型检查选用 ty默认启用所有规则并提供 watch 模式方便开发时实时反馈。测试框架采用 pytest配置覆盖 Python 3.12、3.13 和 3.14 三个版本。命令行接口基于 Typer 实现模板中已包含入口点定义和__main__.py文件。文档系统由 Zensical 和 mkdocstrings 组成前者负责站点渲染后者从 docstring 中提取接口说明整体自动部署到 GitHub Pages。CI/CD 部分基于 GitHub Actions 实现包含四个工作流。CI 工作流在每次 Push 和 Pull Request 时触发依次执行格式化检查、类型校验和多版本单元测试。发布工作流在推送v*标签时启动完成构建后通过 Sigstore 生成签名证明再经由 Trusted Publishers 机制将包发布到 PyPI整个过程不需要手动管理 token。文档工作流监听 main 分支的变更自动构建并重新部署到 GitHub Pages。Dependabot 每周检查一次 Action 依赖生成更新 PR。安全方面所有 GitHub Actions 均通过 SHA 值固定版本权限按最小化原则分配不保留持久凭证。快速上手需要先安装 uv然后执行uvx cookiecutter-pypackage命令会依次询问包名、GitHub 用户名等配置项。填写完成后当前目录下会生成一个完整的项目结构。将项目推送到 GitHub 后按照官方教程启用 Pages 并配置 PyPI Trusted Publisher 即可完成发布准备。对于不使用 uvx 的环境也可以手动创建虚拟环境并安装 cookiecutteruv venvsource.venv/bin/activate uv pipinstallcookiecutter cookiecutter gh:audreyfeldroy/cookiecutter-pypackage项目文档覆盖从生成到发布的完整链路包括逐步教程、项目结构说明、GitHub Actions 配置与安全加固说明、每个提示项的含义解释以及常见问题的排查方法。文档站点托管在 GitHub Pages 上随代码仓库同步更新。该模板由 Audrey M. Roy Greenfeld 创建和维护采用 MIT 协议开源。它的配置较为固定适合希望减少项目初始化工作量的开发者。如果默认方案不适合特定场景可以查看社区 fork 中的各类变体或基于 Cookiecutter 从零创建自定义模板。中的各类变体或基于 Cookiecutter 从零创建自定义模板。