这是一个详细的快速开始指南,帮助您从零开始使用这个 Python 项目模板。
在开始之前,请确保您的系统已安装:
- Python 3.10-3.13(推荐使用 3.11)
- Git
- uv(推荐)或 poetry
uv 是一个极快的 Python 包管理器,由 Rust 编写。
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 验证安装
uv --version# 安装 poetry
pip install poetry
# 验证安装
poetry --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 - 更新
[tool.poetry]段的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
✨ 项目配置已完成!
# 安装所有依赖(包括开发依赖和文档依赖)
uv sync --all-extras
# 或只安装开发依赖
uv sync --dev# 安装所有依赖
poetry install安装完成后,依赖会被安装到虚拟环境中。
# 安装 pre-commit hooks
pre-commit install
# 首次运行所有检查
pre-commit run --all-files运行测试以确保一切正常:
# 使用 Makefile
make test
# 或直接运行
uv run pytest
# 或
poetry 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:
# 添加运行时依赖
uv add numpy pandas
# 添加开发依赖
uv add --dev pytest-cov
# 添加文档依赖
uv add --dev mkdocs使用 poetry:
# 添加运行时依赖
poetry add numpy pandas
# 添加开发依赖
poetry add --group dev pytest-cov# 使用 uv
uv run python src/your_script.py
# 使用 poetry
poetry run python src/your_script.py
# 或激活虚拟环境
uv shell # uv
poetry shell # poetry使用 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 更快,是 Rust 编写。poetry 更成熟,社区支持更多。如果追求性能,选择 uv;如果追求稳定性,选择 poetry。本模板同时支持两者。
A:
- uv 默认使用
.venv目录 - poetry 默认使用独立的环境目录
查看虚拟环境位置:
uv info # uv
poetry env info # poetryA: 编辑 tox.ini,修改 envlist 行:
envlist = py310, py311, py312, py313A:
# 启动文档服务器
uv run mkdocs serve
# 构建静态文档
uv run mkdocs build文档将生成在 site/ 目录。
A: 参考 部署指南 中的 PyPI 发布章节。