Python 现代打包
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/python-packaging-zh。
技能介绍
你在解决什么问题
把本地脚本变成可安装的库或带入口点的 CLI,往往卡在项目目录怎么摆、pyproject.toml 里该写哪些元数据、依赖如何声明、以及 wheel / sdist 怎么构建并推到 PyPI 或私有索引。版本号策略、命名空间包和分类器也容易在第一次发布时踩坑。
技能如何帮你落地
本技能围绕现代 Python 打包流程组织回答:从可分发包的项目结构开始,覆盖 pyproject.toml 配置、依赖与可选依赖、包元数据与 classifiers,到构建 wheel 与源码分发包、通过入口点暴露命令行工具,以及面向 PyPI 或私有仓库的发布与版本管理。需要深入模式与示例时,会引导查阅 resources/implementation-playbook.md。
典型工作方式:先对齐目标、约束和已有输入;再按最佳实践给出可执行步骤与验证方法(例如本地 pip install、检查构建产物、试跑入口点),避免只给概念清单。
适用边界
- 任务与 Python 打包、分发无关时,不必启用本技能。
- 技能聚焦打包与发布;若问题主要在应用架构、测试框架选型或完全无关的领域工具,应在范围外单独处理。
使用场景
- 开源库首次上架前,需要补齐 pyproject.toml、构建 wheel/sdist 并验证本地 pip 可安装
- 维护内部工具时,要把脚本改成带 entry_points 的可安装 CLI,并推到公司私有 PyPI
- 多子包仓库要拆成命名空间包,同时统一版本号与依赖声明后再对外发版
- 发布前需配置包元数据、classifiers 和可选依赖,避免 PyPI 页面信息不完整或装错 extras
适合人员
- 维护公司内部 pip 源、要把零散 Python 脚本收成可版本化分发包的基础平台工程师
- 准备把 side project 开源并持续发版、需要规范项目目录与 PyPI 发布流程的独立库作者
- 负责数据/运维脚本交付、希望同事通过 pip install 与统一入口命令使用工具的 DevOps 工程师
- 在 monorepo 里拆分多个可安装子包、要处理命名空间与构建产物的后端或平台开发