python-packaging
使用 PyPI 构建和发布 Python 包
也可从以下获取: wshobson,ActiveInferenceInstitute
Python 开发者在复杂的打包工作流和不一致的项目结构中面临挑战。本技能提供完整的指导,使用 pyproject.toml 和 setuptools 等现代标准创建专业的 Python 包。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“python-packaging”。 为名为 'data-utils' 的包创建 pyproject.toml,包含 Click 和 pandas 依赖、pytest 开发依赖以及 CLI 入口点
预期结果:
完整的 pyproject.toml,包含构建系统配置、项目元数据、带版本约束的依赖项、可选开发依赖、CLI 脚本入口点,以及 black、ruff 和 pytest 的工具配置。
正在使用“python-packaging”。 如何先将我的包发布到 TestPyPI?
预期结果:
分步说明:(1) 安装 twine,(2) 使用 python -m build 构建包,(3) 使用 twine check 验证,(4) 使用 twine upload --repository testpypi 上传到 TestPyPI,(5) 测试从 TestPyPI 安装,(6) 准备好后发布到生产 PyPI。
安全审计
低风险This skill consists entirely of markdown documentation teaching Python packaging best practices. Static analyzer flagged 118 patterns (backticks, URLs, config examples) that are documentation content, not executable code. All findings are false positives from code examples in fenced markdown blocks. No actual security risks detected.
中风险问题 (1)
低风险问题 (2)
风险因素
⚙️ 外部命令 (4)
🌐 网络访问 (3)
📁 文件系统访问 (1)
质量评分
你能构建什么
库作者发布
创建新的 Python 库以在 PyPI 上分发,包含正确的项目结构、元数据和自动化发布工作流。
CLI 工具分发
使用入口点打包命令行工具,使其可以通过 pip 安装并通过可执行命令运行。
企业包管理
设置私有包索引和命名空间包,用于跨多个团队和仓库组织代码。
试试这些提示
帮我创建一个名为 'my-tool' 的新 Python 包,使用 src 布局、使用 setuptools 的 pyproject.toml,以及基本模块结构。我想包含 pytest 用于测试。
我有一个包含实用函数的现有 Python 包。展示如何使用 Click 添加 CLI 入口点,以便用户在安装后可以从命令行运行 'mytool'。
创建一个 GitHub Actions 工作流,在创建新版本时构建并将我的 Python 包发布到 PyPI。包含包验证和 TestPyPI 测试步骤。
我需要将公司的代码库拆分为多个共享命名空间的包(company-core、company-api、company-utils)。展示完整的项目结构和 pyproject.toml 配置。
最佳实践
- 使用 src/ 布局以防止从未安装的源目录意外导入
- 按照 PEP 621 在 pyproject.toml 中定义所有元数据以实现现代打包
- 在发布到 PyPI 之前,在干净的虚拟环境中测试包安装
避免
- 不要将 setup.py 作为主要配置 - 迁移到 pyproject.toml
- 避免对库使用扁平布局,因为它允许在不安装的情况下导入
- 永远不要提交 API 令牌或凭证 - 使用环境变量进行 PyPI 身份验证