ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从构建到发布:Poetry打包Python包并上传PyPI完整教程

从构建到发布:Poetry打包Python包并上传PyPI完整教程 从构建到发布Poetry打包Python包并上传PyPI完整教程【免费下载链接】poetryPython packaging and dependency management made easy项目地址: https://gitcode.com/GitHub_Trending/po/poetryPoetry 是一款极简的Python 打包与依赖管理工具用一个pyproject.toml文件替代了传统的setup.py、requirements.txt、setup.cfg等零散配置。本教程带你走通完整流程创建项目 → 打包构建 → 上传 PyPI几分钟即可发布你的第一个 Python 包 第1步用 poetry new 创建可发布项目一条命令即可生成标准项目骨架比手写setup.py高效得多poetry new my-package cd my-package生成的目录包含pyproject.toml、README.md、src/my_package/包目录和tests/测试目录。对于已有项目也可以进入目录运行poetry init交互式初始化。更多细节见 docs/basic-usage.md。 默认情况下 Poetry 运行在package 模式此时name和version是必填项——这正是发布 Python 包所必需的元数据。第2步检查 pyproject.toml 打包配置发布前确认pyproject.toml中已声明符合 PEP 517 的构建后端[build-system] requires [poetry-core2.0.0,3.0.0] build-backend poetry.core.masonry.api [project] name my-package version 0.1.0 description The description of the package readme README.md requires-python 3.9几个新手常踩的坑版本号必须符合 PEP 440 规范如1.0.0.post1合法1.0.0-hotfix.1不合法包名与目录名需一致或显式配置tool.poetry.packages指定位置LICENSE*、NOTICE*等许可文件会被自动打入构建产物完整字段说明可查阅 docs/pyproject.md。第3步poetry build 一键打包poetry build一条命令同时产出两种分发格式存放在项目根目录的dist/文件夹格式说明sdist.tar.gz源码包保留完整源代码wheel.whl预构建包安装速度更快如果你希望使用其他构建后端如 maturin只需修改[build-system]配置poetry build会在隔离环境中调用对应后端。打包机制源码位于 src/poetry/masonry/api.py完整打包说明见 docs/libraries.md。第4步配置 PyPI 凭据上传需要认证信息官方推荐使用API Token在 PyPI 账户页创建比密码更安全poetry config pypi-token.pypi 你的token凭据会优先存入系统 keyring找不到时回退到auth.toml明文文件。凭据的获取与存储逻辑在 src/poetry/utils/authenticator.py 中实现。第5步poetry publish 上传发布poetry publish命令会自动读取dist/中的产物并上传到 PyPI。几个实用选项见 src/poetry/console/commands/publish.py--build发布前先自动打包可一步到位poetry publish --build--dry-run完整走一遍发布流程但不真正上传新手首发强烈建议先跑一次--repository指定私有仓库发布如内部包索引而非默认的 PyPI--skip-existing忽略文件已存在错误方便 CI 重复执行发布目标地址与上传流程实现在 src/poetry/publishing/publisher.py默认目标是 PyPI 的上传接口配置私有仓库后则读取repositories配置项。上传成功后你的包就出现在 PyPI 上任何人都可以通过poetry add my-package或pip install my-package使用它了 发布后版本管理与发布到私有仓库升级版本号不用手改文件poetry version patch # 0.1.0 → 0.1.1 poetry version minor # 0.1.0 → 0.2.0 poetry version major # 0.1.0 → 1.0.0命令会直接把新版本写回pyproject.toml逻辑见 src/poetry/console/commands/version.py。发布到私有仓库只需三步poetry config repositories.my-repo https://pypi.example.org/legacy/ poetry config http-basic.my-repo 用户名 密码 poetry publish -r my-repo注意私有仓库要配置的是Legacy Upload API地址通常带/legacy/路径与安装依赖用的/simple/地址不同仓库配置详解见 docs/repositories.md。常见问题速查问题解决方法提示No files to publish先运行poetry build或改用poetry publish --buildPackage is not possible in non-package modepyproject.toml中误设了package-mode false移除即可认证失败检查是否使用了 API Token若配过~/.netrc可能产生冲突建议删除上传 410/400 错误包名或版本在 PyPI 上已存在PyPI 不允许覆盖发布请先poetry version升级版本号掌握new → build → publish这条主线后从本地代码到 PyPI 公开发布就只是三条命令的距离。祝你顺利发布第一个 Python 包【免费下载链接】poetryPython packaging and dependency management made easy项目地址: https://gitcode.com/GitHub_Trending/po/poetry创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表