这是一个详细的快速开始指南,帮助您从零开始使用这个 Python 项目模板。
在开始之前,请确保您的系统已安装:
- Python 3.10-3.13(推荐使用 3.11)
- Git
- uv(本模板仅使用 uv)
uv 是一个极快的 Python 包管理器,由 Rust 编写。
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 验证安装
uv --version# 克隆模板仓库
git clone https://github.com/SongshGeo/project_template.git my-project
cd my-project
# 删除旧的 git 历史(可选)
rm -rf .git
git init运行配置脚本来自定义项目信息:
make configure-project或者手动运行:
python scripts/configure_project.py脚本会提示您输入:
- 项目名称:将在包名和配置中使用(例如:
my-awesome-project) - 项目描述:项目的简要描述(例如:
An awesome Python project)
配置脚本会自动执行以下操作:
-
更新
pyproject.toml- 更新
[project]段的name和description
- 更新
-
更新 GitHub Workflow
- 更新
.github/workflows/release-please.yml中的项目名称
- 更新
-
创建 README.md
- 使用项目名称和描述创建新的 README.md
-
清空 CHANGELOG.md
- 为您的项目准备一个新的变更日志
示例输出:
$ make configure-project
项目名称: my-awesome-project
项目描述: An awesome Python project
✓ 已更新 pyproject.toml
✓ 已更新 .github/workflows/release-please.yml
✨ 项目配置已完成!
如果你使用 Claude Code,整个初始化流程可以交给一个 skill 自动完成,而无需手动逐条运行命令:
- 从本模板创建你的项目,并用 Claude Code 打开。
- 运行
setup-projectskill,它会:- 配置项目名称和描述;
- 使用
uv sync --all-extras安装依赖; - 安装 pre-commit hooks;
- 执行
npx skills@latest add SongshGeo/skills安装推荐的外部 skill; - 初始化
memory-bank/; - 运行测试套件以验证一切正常。
已有一个用旧模板生成的老项目?运行 upgrade-project skill 即可将其迁移到新的
uv-only + Claude Code 工作流。
!!! tip "协作上下文中枢"
根目录的 CLAUDE.md(权威的编码规范与 skill 索引)与顶层的 memory-bank/
是与 Claude Code 协作的共享上下文中枢。
# 安装所有依赖(包括开发依赖和文档依赖)
uv sync --all-extras
# 或只安装开发依赖
uv sync --dev安装完成后,依赖会被安装到虚拟环境中。
# 安装 pre-commit hooks
pre-commit install
# 首次运行所有检查
pre-commit run --all-files运行测试以确保一切正常:
# 使用 Makefile
make test
# 或直接运行
uv run pytest查看测试报告:
make reportsrc/
├── core/ # 核心业务逻辑
└── api/ # API 接口
├── conftest.py # pytest 配置
├── test_configure_project.py # 配置脚本测试
└── test_*.py # 其他测试文件
项目模板已包含基础测试:
tests/test_configure_project.py- 测试项目配置脚本
运行测试:
make test
# 或
uv run pytest- 在
src/目录下添加您的代码 - 在
tests/目录下添加对应的测试文件 - 运行测试确保功能正常
测试示例:
# tests/test_my_module.py
def test_my_function():
"""Test my function."""
from src.my_module import my_function
assert my_function() == expected_value# 添加运行时依赖
uv add numpy pandas
# 添加开发依赖
uv add --optional dev pytest-cov
# 添加文档依赖
uv add --optional docs mkdocs# 使用 uv 运行
uv run python src/your_script.py
# 或激活虚拟环境
uv shell使用 tox 测试代码在不同 Python 版本的兼容性:
# 测试所有版本(3.10-3.13)
make tox
# 测试特定版本
make tox-e pyversion=py311
# 查看可用环境
make tox-list每次提交时会自动运行检查。如果需要手动运行:
# 运行所有检查
pre-commit run --all-files
# 运行特定检查
pre-commit run black --all-files
pre-commit run flake8 --all-files
pre-commit run interrogate --all-files# 代码格式化
black .
ruff format .
# 代码检查
flake8 src/
mypy src/
# 文档覆盖率
interrogate src/A: 本模板仅使用 uv。uv 由 Rust 编写,速度极快,在一个工具中统一管理虚拟环境、依赖和打包。
A: uv 默认使用 .venv 目录。
查看虚拟环境位置:
uv infoA: 编辑 tox.ini,修改 envlist 行:
envlist = py310, py311, py312, py313A:
# 启动文档服务器
uv run mkdocs serve
# 构建静态文档
uv run mkdocs build文档将生成在 site/ 目录。
A: 参考 部署指南 中的 PyPI 发布章节。