当前位置: 首页 > news >正文

如何将上传至PyPI

将 Python 程序(包)发布到 PyPI(Python Package Index)可以让其他人通过pip install your-package-name安装你的项目


🧰 一、准备工作

1. 项目结构示例

确保你的项目有如下基本结构(以mypackage为例):

mypackage/ ├── mypackage/ │ ├── __init__.py │ └── module.py ├─ README.md ├─ LICENSE ├─ pyproject.toml # 或 setup.py + setup.cfg(推荐使用 pyproject.toml) └─ tests/ # 可选

自 Python 打包社区推荐以来,优先使用pyproject.toml(PEP 621 标准)来定义元数据和构建配置。


📦 二、配置打包信息(使用pyproject.toml

创建pyproject.toml文件,内容示例如下:

[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "mypackage" version = "0.1.0" description = "A short description of your package" readme = "README.md" license = {file = "LICENSE"} authors = [ {name = "Your Name", email = "you@example.com"}, ] classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] requires-python = ">=3.8" dependencies = [ "requests", # 你的依赖项 ] [project.urls] Homepage = "https://github.com/yourname/mypackage" Repository = "https://github.com/yourname/mypackage"

如果你仍使用setup.py,可以参考旧方法,但建议迁移到pyproject.toml


🔧 三、构建分发包

安装构建工具:

pip install build

在项目根目录运行:

python -m build

这会生成dist/目录,包含.tar.gz(源码分发)和.whl(wheel 二进制分发)文件。


🔐 四、注册 PyPI 账号并获取 API Token

  1. 访问 https://pypi.org 注册账号。
  2. 进入 Account Settings → API tokens
  3. 创建一个API Token(建议为特定项目创建 scoped token,权限选 “Upload”)。
  4. 复制 token(形如pypi-xxxxx),只显示一次,请妥善保存!

🚀 五、上传到 PyPI

安装上传工具:

pip install twine

上传(使用 TestPyPI 测试可选)

(可选)先上传到 TestPyPI 测试:
twine upload --repository testpypi dist/*

输入用户名:__token__
密码:你的 TestPyPI API Token(以pypi-开头)

然后可通过pip install -i https://test.pypi.org/simple/ mypackage测试安装。

正式上传到 PyPI:
1twine upload dist/*
  • 用户名:__token__
  • 密码:你在 PyPI 上创建的 API Token(不是登录密码!)

✅ 成功后,你的包就会出现在 https://pypi.org/project/mypackage/


🔄 六、后续更新版本

  1. 修改pyproject.toml中的version(如0.1.1
  2. 重新运行python -m build
  3. 再次用twine upload dist/*上传(PyPI 不允许覆盖同版本)

✅ 最佳实践建议

  • 使用.gitignore忽略dist/,build/,*.egg-info
  • 在 GitHub/GitLab 上托管源码,并链接到project.urls
  • 编写清晰的README.md(支持 Markdown)
  • 添加LICENSE文件(如 MIT、Apache 2.0)
  • 使用check-wheel-contents检查 wheel 合规性(可选)
http://www.jsqmd.com/news/880747/

相关文章:

  • 别再骂Windows Defender了!手把手教你优化MsMpEng.exe,让游戏/编译不再卡顿
  • 16.高通 9008 深度救砖实战!EDL 协议解析 + Python 刷机源码直接运行
  • 从0到10万粉:用ChatGPT批量生成B站选题、脚本、标题、简介、弹幕预埋——完整工作流拆解,含5大防限流校验节点
  • CAXA 基准代号
  • 多模态模型在昇腾上的部署架构
  • Transformer注意力机制优化2026:Flash Attention到MLA的工程进化
  • 2026年至今,西安地区高适配机械弹簧供应商深度解析:为何“兵华弹簧制造”备受青睐? - 2026年企业推荐榜
  • 2026年江苏井下清仓机器人直销厂家的选择逻辑与价值剖析 - 2026年企业推荐榜
  • Taotoken 用量看板与账单追溯功能的实际使用感受
  • AI Agent测试工程:如何系统验证智能体的行为正确性
  • 别再死记硬背了!用Python+PyTorch手把手复现感知机到LSTM,帮你把深度学习笔记变活
  • 【万字文档+源码】基于SpringBoot+Vue高校实验室预约系统-计算机专业项目设计分享
  • 2026年Q2浙江防水堵漏怎么选:嘉善防水补漏公司/桐乡防水补漏公司/海宁防水补漏公司/海盐防水补漏公司/防水补漏工程/选择指南 - 优质品牌商家
  • 2026抖店转让优质平台推荐指南:天猫店铺转让的正规平台、抖店转让平台哪家口碑最好、正规的跨境网店转让平台、淘宝店铺转让平台有哪些选择指南 - 优质品牌商家
  • 一键生成AI影视解说,这个开源工具让我每周多产出10倍内容
  • 【Gemini SQL生成实战指南】:20年DBA亲授3大避坑法则与5步精准查询生成法
  • CAXA 基准代号风格(样式设置)
  • C#零基础通关第五篇:吃透属性、继承与多态,彻底精通面向对象三大特性
  • 10分钟上手oam-tools:昇腾NPU运维自动化工具集
  • IEC104 报文解析工具 ProIEC104Client工具使用 104主站从站
  • 青岛国资控股的上市公司有哪些? - 品牌2025
  • MySQL 触发器使用场景
  • 大模型Function Calling工程实战:从协议到生产的完整指南
  • 成都型钢今日报价 实时行情走势现货价格查询首选盛世钢联 - 四川盛世钢联营销中心
  • 2026年5月新消息:果筐机厂家综合实力盘点,宁波华维机械为何值得关注? - 2026年企业推荐榜
  • 2026提升营销业务能力的关键方法:从“流量操盘手”进阶为“数据增长官”
  • 别再乱改时间了!Linux服务器时间同步保姆级指南:hwclock、NTP与cron实战
  • 2026四分类垃圾亭技术全解析:公交站亭/公交站台厂家/公交站台生产厂家/四分类垃圾亭厂家/四分类垃圾箱/垃圾分类亭厂家/选择指南 - 优质品牌商家
  • 你的 Java 程序为什么总是先流畅后卡成狗?——JVM 内存、垃圾回收与调优求生指南
  • FSR框架:自动化CUDA内核优化的技术突破