SuperAPI AI 工具集

python-project-guidelines

编程与开发

查看项目

更新于 11-02 16:14

技能介绍

用途

该技能适用于从零创建包含多个模块的 Python 项目,或者为 Python 应用、库搭建脚手架,并用 pyproject.toml 建立项目结构与配置。它不适合单文件独立脚本或快速工具脚本;这类场景应改用 standalone-python-scripts 技能。已有项目如果没有 pyproject.toml,也不需要重构,同样不在适用范围内。

主要能力与原则

技能给出的核心做法包括:用 uv 管理 Python 版本和虚拟环境;依赖遵循最小必要原则;使用现代 Python 版本;Web 应用采用异步优先架构。判断规则很明确:如果项目是单个 .py 文件并独立执行,就改用独立脚本技能;如果需要多个模块、测试或复杂结构,则继续使用本技能。

使用方式

初始化时可用 uv init myproject 创建项目,也可用 uv init myproject --python 3.12 指定版本。添加生产依赖用 uv add click arrow sqlalchemy,添加开发依赖用 uv add --dev pytest ruff mypy,添加带版本约束的依赖用 uv add 'httpx>=0.24,<0.27'。执行脚本或工具时用 uv run python myscript.py、uv run pytest、uv run ruff check .。

版本策略要求不选择已停止支持或距停止支持不足一年的版本,并需查阅 Python 官方版本状态页面进行确认;资料中列出的当前安全最低版本为 Python 3.11,并在 pyproject.toml 中设置 requires-python = ">=3.11"。

依赖选择上优先使用标准库;需要外部库时,资料推荐 Click 处理参数解析、Arrow 处理日期时间、SQLAlchemy 作为数据库 ORM、Alembic 做数据库迁移,Web 框架可选 Quart、FastAPI 或 AioHttp,并按项目需要选择异步框架。数据库规则是使用 SQLAlchemy ORM,只有当 ORM 难以高效表达复杂查询、原始 SQL 在性能关键路径上可测量地更快,或遗留数据库集成需要特定 SQL 功能时,才写原始 SQL。

项目结构

推荐采用 src 布局:根目录包含 pyproject.toml、src/myproject/(含 init.py、main.py 等)、tests/ 与 README.md。所有项目元数据放在 pyproject.toml 中,不使用 setup.py 或 setup.cfg;测试与源码分离。

适用场景与限制

适合需要多文件、测试或复杂依赖的 Python 应用与库的项目初始化。资料同时列出常见错误与检查项,例如应使用 uv 而非 pip 或 venv、避免目标版本过旧、避免无理由添加依赖、pyproject.toml 中必须包含 requires-python,以及完成前进行版本、依赖树、结构与运行验证。资料未提供该技能的收费、价格、平台或具体效果信息。