快速开始指南
这是一个详细的快速开始指南,帮助您从零开始使用这个 Python 项目模板。
前提条件
在开始之前,请确保您的系统已安装:
- Python 3.10-3.13(推荐使用 3.11)
- Git
- uv(推荐)或 poetry
步骤 1:安装包管理器
选项 A:使用 uv(推荐)
uv 是一个极快的 Python 包管理器,由 Rust 编写。
选项 B:使用 poetry
步骤 2:创建新项目
# 克隆模板仓库
git clone https://github.com/SongshGeo/project_template.git my-project
cd my-project
# 删除旧的 git 历史(可选)
rm -rf .git
git init
步骤 3:配置项目
运行配置脚本来自定义项目信息:
或者手动运行:
脚本会提示您输入:
- 项目名称:将在包名和配置中使用(例如: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
✨ 项目配置已完成!
步骤 4:安装依赖
使用 uv
使用 poetry
安装完成后,依赖会被安装到虚拟环境中。
步骤 5:设置 Git hooks
步骤 6:验证安装
运行测试以确保一切正常:
查看测试报告:
步骤 7:开始开发
项目结构
src/
├── core/ # 核心业务逻辑
└── api/ # API 接口
├── conftest.py # pytest 配置
├── test_configure_project.py # 配置脚本测试
└── test_*.py # 其他测试文件
当前测试
项目模板已包含基础测试:
- tests/test_configure_project.py - 测试项目配置脚本
运行测试:
添加新功能
- 在
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:
使用 poetry:
运行代码
# 使用 uv
uv run python src/your_script.py
# 使用 poetry
poetry run python src/your_script.py
# 或激活虚拟环境
uv shell # uv
poetry shell # poetry
步骤 8:代码质量检查
运行多版本测试
使用 tox 测试代码在不同 Python 版本的兼容性:
自动检查(推荐)
每次提交时会自动运行检查。如果需要手动运行:
# 运行所有检查
pre-commit run --all-files
# 运行特定检查
pre-commit run black --all-files
pre-commit run flake8 --all-files
pre-commit run interrogate --all-files
手动运行工具
下一步
常见问题
Q: 如何选择 uv 还是 poetry?
A: uv 更快,是 Rust 编写。poetry 更成熟,社区支持更多。如果追求性能,选择 uv;如果追求稳定性,选择 poetry。本模板同时支持两者。
Q: 虚拟环境在哪里?
A:
- uv 默认使用 .venv 目录
- poetry 默认使用独立的环境目录
查看虚拟环境位置:
Q: 如何添加 Python 版本测试?
A: 编辑 tox.ini,修改 envlist 行:
Q: 如何生成文档?
A:
文档将生成在 site/ 目录。
Q: 如何发布到 PyPI?
A: 参考 部署指南 中的 PyPI 发布章节。