SuperAPI AI 工具集

python-packaging

编程与开发

查看项目

更新于 10-16 03:14

技能介绍

用途:让 Python 库可安装、可构建,并验证产物(sdist + wheel)内容。核心是把 pyproject.toml 作为唯一打包配置来源,选定构建后端,采用 src/ 布局,用 uv 管理依赖并提交锁文件。

主要能力:1) 评估现有配置(setup.py、setup.cfg、MANIFEST.in、requirements*.txt、poetry.lock、Pipfile、uv.lock)与 pyproject.toml 中的 build-backend、tool.poetry、dependency-groups、optional-dependencies;确认原生扩展或纯 Python、扁平或 src/ 布局、已有的开发依赖约定。2) 选择后端:uv_build(纯 Python,零配置 src/ 发现,严格元数据校验,但要求带版本上界如 uv_build>=0.12,<0.13;不支持 C/Cython/Rust 扩展);hatchling(需要基于 git tag 的动态版本、插件生态);setuptools(扩展模块与遗留配置)。新项目不建议 poetry-core。uv build 是与后端无关的 PEP 517 前端。3) src/ 布局:用 uv init --lib my-package 脚手架;uv_build 默认期望 src/<规范化项目名>/init.py,导入名不同时通过 [tool.uv.build-backend] module-name 声明。4) [project] 元数据:name、version、description、readme、license(SPDX)、requires-python、authors、dependencies、classifiers、[project.scripts] 入口点;开发工具放 PEP 735 [dependency-groups](uv add --dev 写入),不要放可选依赖 extra。5) 用 uv 管理:uv add、uv add --dev、uv sync、uv lock --upgrade-package、uv run;提交 uv.lock,不要手改,不要在 uv 项目中调用 pip。6) 迁移:从 setup.py/setup.cfg、Poetry(uvx 'migrate-to-uv==0.12.0',后端最后切换)、requirements.txt(uv add -r)。7) 校验元数据:uvx --from 'validate-pyproject[all]==0.26' validate-pyproject pyproject.toml。8) 构建:uv build。9) 验证产物:运行 scripts/check_wheel.py 检查 wheel 是否含 METADATA/WHEEL/RECORD、py.typed 是否进入 wheel、是否泄漏 tests/docs、sdist 是否含 pyproject.toml;并用隔离环境冒烟测试 wheel 导入。

适用与限制:不涉及发布 PyPI、版本号、changelog、git tag、可信发布(属 python-release);不负责类型检查配置(属 python-typing),仅验证 py.typed 是否入 wheel;ruff、pytest、GitHub Actions、依赖漏洞审计分别属其它技能;单文件脚本用 PEP 723 即可。资料未提供具体收费或版本价格信息。