new-python-project
Python 项目初始化
流程概述
- 确认项目信息 - 与用户交互确认项目名称和 Python 版本
- 初始化项目 - 使用 uv init 创建项目,启用 git 版本控制
- 配置代码规范检查 - 使用 pre-commit 管理并初始化代码规范检查 hooks,并应用相应的规范配置
- 配置测试框架 - 添加 pytest、pytest-cov 开发依赖
- 配置版本管理工具 - 配置 .gitignore 优化VCS管理,配置版本元信息,配置 bumpversion 进行语义化版本管理
- 添加常用开发工具 - 添加 ipython 用于本地调试
- 安装并验证 - 安装所有依赖并验证配置
- 更新README - 创建并更新README文件,添加项目使用说明
- 完成初始提交
Step 1: 确认项目信息
与用户确认以下信息:
- 项目名称 project_name: 默认使用当前目录名称
- 项目描述 project_description: 简短的项目描述信息,用于快速理解项目功能和定位
- Python 版本 python_version: 推荐使用官方支持的版本(3.10及以上)
Step 2: 初始化项目
使用 uv 初始化项目,启用 git 版本控制:
uv init \
# 项目名称
--name=<project_name> \
# 项目描述
--description="<project_description>" \
# 初始化 src/<project_name> 包目录
--package \
# 初始化 git
--vcs=git \
# Python 最低支持版本
--python=<python_version>
Step 3: 配置代码规范检查
添加 pre-commit 及代码格式化工具:
uv add --dev pre-commit black flake8 flake8-import-order ruff
将 assets/pre-commit-config.yaml 内容写入项目根目录的 .pre-commit-config.yaml 文件
将 assets/flake8.j2 模板应用到项目根目录的 .flake8 文件,替换变量 {{ project_name }} 为项目名称
安装 pre-commit hooks:
uv run pre-commit install
Step 4: 配置测试框架
添加 pytest 和 pytest-cov 开发依赖:
uv add --dev pytest pytest-cov
创建 tests 目录和初始测试文件:
mkdir -p tests
touch tests/__init__.py
在 pyproject.toml 中添加 pytest 配置:
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*", "*Test"]
python_functions = ["test_*"]
addopts = [
"-v",
"--cov=src/<project_name>",
"--cov-report=term-missing",
"--tb=short",
]
[tool.coverage.run]
source = ["src/<project_name>"]
branch = true
omit = ["tests/*"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise NotImplementedError",
"if __name__ == .__main__.:",
]
Step 5: 配置版本管理工具
添加 .gitignore
curl https://raw.githubusercontent.com/github/gitignore/refs/heads/main/Python.gitignore -o .gitignore
添加 bumpversion 依赖:
uv add --dev bumpversion
配置版本元信息
-
新建
src/<project_name>/_version.py文件用于保存项目版本元信息__version__ = "0.1.0" -
将版本信息导出到项目包命名空间,调整
src/<project_name>/__init__.py"""<project_name> package.""" from ._version import __version__ # noqa: F401 -
添加测试用例用于验证版本元信息获取
from <project_name> import __version__ def test_version(): assert __version__
将 assets/bumpversion.cfg.j2 模板应用到项目根目录的 .bumpversion.cfg 文件,替换变量 {{ project_name }} 为项目名称
Step 6: 添加常用开发工具
uv add --dev ipython
Step 7: 安装并验证
安装所有依赖:
uv sync
验证配置:
# 验证 pytest
uv run pytest
# 验证 pre-commit
uv run pre-commit run --all-files
# 验证 bumpversion
uv run bumpversion --help
# 验证版本元信息
uv run python -c 'from <project_name> import __version__; print(__version__)'
Step 8: 更新README
使用模板 assets/README.md.j2 生成项目 README 文件,替换以下变量:
{{ project_name }}- 项目名称{{ project_description }}- 项目描述
将生成的内容写入项目根目录的 README.md 文件。
Step 9: 完成初始提交
git add .
git commit -m "Initial project setup"
More from ynz012x/skills
git-commit-generator
分析 git 暂存区变更内容,自动推断提交类型(type)和作用域(scope),生成符合 Conventional Commits v1.0.0 规范的中文提交消息,并执行 git commit。当你需要提交代码、做 git commit、生成 commit message、提交暂存区变更时,请使用此 skill。
13python-initializr
初始化一个规范的 Python 项目,包含依赖管理、代码规范检查、类型检查、测试框架、版本管理等。当用户需要创建新的 Python 项目、初始化 Python 包、搭建 Python 开发环境、用 uv 创建项目时,请使用此 skill。
12requirement-analysis
基于徐峰《有效需求分析》方法论的系统化需求分析skill。采用SERU方法和三阶段分析流程,覆盖价值需求、功能需求、数据需求、质量需求四条主线。当你需要做需求分析、梳理系统需求、编写需求规格说明书、挖掘用户需求、启动新项目需求调研时,请使用此 skill。
11system-design
基于系统设计7步法的系统设计skill,融合SERU分析方法论。支持增量设计(分析现有代码库),输出类/函数级接口签名。当你需要做系统设计、架构设计、技术方案设计、接口设计、扩展现有系统功能时,请使用此 skill。
2skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
1skill-design-advisor
基于 Google 5大设计模式与 Anthropic Skill 工程实践的 Skill 结构规划与设计分析工具。分析 skill 的功能类别、输入输出特征、交互复杂度和领域知识需求,推荐最佳设计模式(Tool Wrapper / Generator / Reviewer / Inversion / Pipeline)、目录结构和写作最佳实践。当你在规划一个新 skill 的结构、判断 skill 属于哪种类别、纠结 SKILL.md 该怎么组织、不确定要不要拆 references 目录、想了解 Agent Skill 设计模式、想知道如何写好 skill 或优化现有 skill 时,请使用此 skill。也适用于评审现有 skill 的结构合理性。
1