0

0

Python 包发布到 PyPI 完整流程

舞姬之光

舞姬之光

发布时间:2026-02-26 19:06:45

|

823人浏览过

|

来源于php中文网

原创

发布python包到pypi需三步:整理规范包结构(推荐pyproject.toml)、构建分发包(python -m build)、上传至pypi(twine upload),关键在元数据准确、打包干净、认证正确。

python 包发布到 pypi 完整流程

把 Python 包发布到 PyPI,核心是三步:准备包结构、构建分发包、上传到 PyPI。关键不在代码多复杂,而在元数据是否规范、打包是否干净、认证是否正确。

一、整理包结构,确保符合 PyPI 要求

PyPI 不接受任意目录结构。推荐标准布局如下:

  • my_package/ —— 源码包(含 __init__.py
  • setup.pypyproject.toml(推荐后者,现代标准)
  • README.md(必须,首页展示)
  • LICENSE(建议包含)
  • requirements.txt(可选,开发依赖建议放 pyproject.toml 中)

特别注意:setup.py 已逐步被弃用;Python 3.12+ 官方只推荐使用 pyproject.toml 配合 setuptoolshatch 等构建后端。

二、编写 pyproject.toml,声明元信息和依赖

这是当前最稳妥的方式。一个最小可用示例:

立即学习Python免费学习笔记(深入)”;

[build-system]
requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
<p>[project]
name = "my-package"
version = "0.1.0"
description = "A short description"
readme = "README.md"
authors = [{name = "Your Name", email = "you@example.com"}]
license = {text = "MIT"}
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
]
requires-python = ">=3.8"
dependencies = [
"requests>=2.25.0",
]</p><p>[project.urls]
Homepage = "<a href="https://www.php.cn/link/ce4ef2a93a49e822821eb2038540a6d3">https://www.php.cn/link/ce4ef2a93a49e822821eb2038540a6d3</a>"
Repository = "<a href="https://www.php.cn/link/ce4ef2a93a49e822821eb2038540a6d3">https://www.php.cn/link/ce4ef2a93a49e822821eb2038540a6d3</a>"

版本号建议遵循 Semantic Versioningrequires-python 明确指定支持的 Python 版本范围,避免用户安装失败。

三、构建并本地验证分发包

在项目根目录运行:

机票网站整站程序
机票网站整站程序

全新整合开发的.蓝色主题机票网站,清新大气.功能强大这个程序包是我首次在网上发布.有需要的朋友可以下载看看采用最新的航信接口,集成机票实时查询接口.网站分国内机票,国际机票,订单查询机票预订功能,查询完成。非会员可以直接预订,并且自动注册会员。客人下完订单自动发送订单短信到用户手机上.会员中心管理订单.积分.支持在线支付:可以支持支付宝,快钱,网银在线,易宝支付,财付通等多种支付方式强大的后台管理

下载
python -m build

会生成 dist/my_package-0.1.0-py3-none-any.whldist/my_package-0.1.0.tar.gz。接着用 twine 检查内容是否合规:

twine check dist/*

若提示 Failed validation,常见原因是 README.md 格式不被 PyPI 渲染器支持(比如用了 GitHub 特有语法),可临时转成 README.rst 或精简 Markdown。

四、注册账号并上传到 PyPI

访问 pypi.org/register 注册账号(注意:PyPI 和 TestPyPI 是两个独立站点)。上传前建议先用 TestPyPI 验证流程:

  • 注册 TestPyPI 账号:test.pypi.org/register
  • 配置 ~/.pypirc(Linux/macOS)或 %APPDATA%\pip\pip.ini(Windows):
[distutils]
index-servers = testpypi pypi
<p>[testpypi]
repository = <a href="https://www.php.cn/link/d690d0cd274a05efe2a0a58dac0d9461legacy/">https://www.php.cn/link/d690d0cd274a05efe2a0a58dac0d9461legacy/</a>
username = <strong>token</strong>
password = pypi-...  # TestPyPI 生成的 API token</p><p>[pypi]
repository = <a href="https://www.php.cn/link/14fab9101cde27b123722210d1a1836f">https://www.php.cn/link/14fab9101cde27b123722210d1a1836f</a>
username = <strong>token</strong>
password = pypi-...  # PyPI 正式站 API token

生成 token 方法:登录 PyPI → Account Settings → API tokens → “Add API token”,限制 scope 可提高安全性。

上传命令:

twine upload --repository testpypi dist/*
# 验证成功后,再上传正式版
twine upload --repository pypi dist/*

上传成功后,稍等 1–2 分钟,就能在 pypi.org/project/your-package-name 查看页面,并用 pip install your-package-name 安装测试。

不复杂但容易忽略:每次更新必须改 version 字段,否则 PyPI 拒绝重复版本;上传前务必 git taggit push --tags,方便后续维护和溯源。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

351

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

428

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

790

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

363

2025.07.23

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6461

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

838

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1087

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1726

2024.03.01

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号