python包上传到pypi过程

2023-05-16

python包上传到pypi过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • python包上传到pypi过程
  • 前言
  • 一、pypi是什么?
  • 二、使用步骤
    • 1.创建目录结构
    • 2. 创建 pyproject.toml
    • 3. 创建README.md
    • 4. 创建许可证
    • 5. 打包
    • 6. 注册pypi账号和testpypi账号
    • 7. 上传到testpypi
    • 8. 安装
  • 总结
    • 1.安装


前言

有的时候会写一些python的工具包,上传到pypi会很方便下载使用,本篇文章将介绍打包上传过程

pypi官网 https://pypi.org/

pypi打包上传文档

testpypi官网 (pypi.org)

simple-export · PyPI

GitHub - mtl940610/simple_export

一、pypi是什么?

Python 包索引 (PyPI) 是 Python 编程语言的软件存储库。

二、使用步骤

1.创建目录结构

packaging_tutorial 根目录

LICENSE 参阅https://choosealicense.com/选择许可证

pyproject.toml 配置文件

dist 打包后的目录

src/simple_export 项目文件,可替换成你自己的

tests 测试文件夹,可为空

└─packaging_tutorial
    │  LICENSE
    │  pyproject.toml
    │  README.md
    │
    ├─dist
    │      simple_export-0.1.9-py3-none-any.whl
    │      simple_export-0.1.9.tar.gz
    │
    ├─src
    │  └─simple_export
    │      │  example.py
    │      │  excel.py
    │      │  val1.xlsx
    │      │  __init__.py
    │      │
    │      ├─template
    │      │      excel1.xlsx
    │      │      excel2.xlsx
    │      │
    │      └─utils
    │          │  tool.py
    │          │  __init__.py
    │          │
    │          └─__pycache__
    │                  tool.cpython-38.pyc
    │                  __init__.cpython-38.pyc
    │
    └─tests
            example.py
            val1.xlsx
            __init__.py

2. 创建 pyproject.toml

名称备注
name包的分发名称。这可以是任何名称,只要它只包含字母、数字、.、_和-。它也不能已经在 PyPI 上使用。请务必使用您在本教程中的用户名更新此名称,因为这可确保您不会尝试上传与已存在名称相同的包。
version包的版本号。有关版本的更多详细信息,请参阅版本说明符规范 。一些构建后端允许以其他方式指定它,例如从文件或 git 标签。
authors用于识别包的作者;您为每位作者指定姓名和电子邮件。您也可以maintainers以相同的格式列出
description简短单句摘要
readmereadme文件的路径
requires-python给出项目支持的 Python 版本。像pip这样的安装程序会回顾旧版本的包,直到找到一个具有匹配 Python 版本的包。
classifiers为 index 和pip提供一些关于您的包的额外元数据。在这种情况下,该包仅与 Python 3 兼容,根据 MIT 许可获得许可,并且独立于操作系统。您应该始终至少包括您的包适用于哪些 Python 版本、您的包在哪个许可下可用以及您的包将在哪些操作系统上运行。有关分类器的完整列表,请参阅 https://pypi.org/classifiers/。
urls允许您列出任意数量的额外链接以显示在 PyPI 上。通常这可能是源代码、文档、问题跟踪器等。

我的toml(示例):

[tool.poetry]
name = "simple-export"
version = "0.1.9"
description = "简单的模板导出工具"
authors = ["mtl <576694002@qq.com>"]
license = "Apache"
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.7"
openpyxl = "^3.0.10"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry.urls]
"Homepage" = "https://github.com/mtl940610/simple_export"
"Bug Tracker" = "https://github.com/mtl940610/simple_export/issues"

3. 创建README.md

markdown格式随意编写,介绍项目

4. 创建许可证

LICENSE 参阅https://choosealicense.com/选择许可证

5. 打包

在这里插入图片描述

# 如果有虚拟环境需要进入虚拟环境 直接python 执行
python3 -m pip install --upgrade build
# pyproject.toml位于的同一目录运行此命令 此命令执行完后 dist目录下会生成两个文件 whl 、 tar.gz
python3 -m build
# 通过twine上传包
python3 -m pip install --upgrade twine

6. 注册pypi账号和testpypi账号

pypi官网 [https://pypi.org/

testpypi官网 (pypi.org)

7. 上传到testpypi

一般可以先上传到testpypi,测试通过后在上传pypi,当然也可以直接上传到pypi

# testpypi 改为 pypi就是上传到pypi dist/* 是上传dist下所有文件
python3 -m twine upload --repository testpypi dist/*

8. 安装

python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps simple-export

总结

1.安装

如果换源了,有可能得等一段时间才能同步到其他源

可以先指定官方源

[test-pypi](https://test.pypi.org/simple/

pypi [Simple index](https://pypi.org/simple)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python包上传到pypi过程 的相关文章

  • 字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较

    问题 xff1a 函数memcpy dest src sizeof dest strncpy dest src sizeof dest 和snprintf dest sizeof dest s src 都可以将src字符串中的内容拷贝到de
  • snprintf函数使用总结

    一直有接触snprintf 经久不用知识点又会模糊 记录下来以便日后查看 依赖头文件 include lt stdio h gt 函数原型 int snprintf char str size t size const char forma
  • 如何在Ubuntu 18.04 LTS上使用UFW设置防火墙

    正确配置防火墙是整个系统安全中最重要的方面之一 默认情况下 xff0c Ubuntu 18 04 LTS 附带了一个名为 UFW xff08 Uncomplicated Firewall xff09 的防火墙配置工具 xff0c UFW 是
  • 全程技术干货:VR画面渲染性能是这样提升的

    本文您将了解到 xff1a 1 xff0c VR渲染面临什么问题 xff1f 2 xff0c 如何做好VR的渲染 xff1f 3 xff0c 怎样提升VR渲染的性能 xff1f 渲染对于VR内容的开发来说 xff0c 是非常重要的议题 但在
  • Python微信小程序,实现自动回复等功能(itchat模块)

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能 xff0c 必须在自己的微信中添加微信号xiaoice ms xff08 微软的微信机器人 xff09 才能实现 xff0c 直接复制代码运行之后扫一扫二维码
  • 最大完全子图和极大连通子图

    最近学习图论的一串小结之一 完全图 amp 完全子图 amp 最大完全子图 完全图 xff1a 任意两点都恰有一条边相连的图 任意两点都相邻 完全子图 xff1a 满足任意两点都恰有一条边相连的子图 xff0c 也叫团 最大完全子图 xff
  • python3回溯找最大团

    最近学习图论的一串小结之三 数学概念见上上篇 xff1a 最大完全子图和极大连通子图 最大团问题分析可以移步这篇博文 xff1a 回溯 图论 最大团问题 xff08 求最大完全子图 xff09 代码一部分参考了这篇博文 xff1a pyth
  • python3关于经纬度、方向角、目标距离

    博主搞了半天haversin公式倒腾距离之后 xff0c 发现有现成的geopy可用 xff0c 且网上查到的一些函数用法似乎有改变 xff0c 遂整理如下 已知两点经纬度求距离 from geopy distance import geo
  • 零基础LSTM入门示例

    最近用pytorch搭了个LSTM模型 xff0c 由于博主两个都没基础 xff0c 所以查来查去兜了不少圈子 xff0c 干脆总结一个极简的LSTM代码示例 xff0c 供参考 仅使用了torch nn Module自定义模型 随便挑了a
  • 零基础自定义数据集入门示例

    总结一个简单的自定义数据集示例 假设数据文件存储在path中的txt文件中 xff0c 内容为 时间 xff0c 数据1 xff0c 数据2 xff0c 数据3 的列表 对应的标签存在label txt中 from torch utils
  • not executable: 64-bit ELF file 已解决

    not executable 32 bit ELF file 已解决 not executable 64 bit ELF file 已解决 如上二个问题 1 xff0c 在ubuntu系统中 gcc linaro 7 5 0 2019 12
  • 训练集、测试集、验证集,以及数据集切分代码

    区别一下三个概念 xff1a 训练集 xff1a 顾名思义 xff0c 用于训练模型 xff0c 调整网络中的权值 偏差等参数 测试集 xff1a 对模型能力进行评估 xff0c 调整学习率等超参 xff0c 使模型效果达到最优 验证集 x
  • AI编程软件会取代程序员吗?

    最近听到同事问了这样一个问题 xff0c 今天就来好好的唠一唠 xff0c 随着科学技术的发展 xff0c 现在生命上都已经开始出现AI编程软件了 不由得感叹 xff0c 一句现在时代发展还真快呀 xff01 然后我就和他一样产生了一种小小
  • Android MTK Keyguard 锁屏UI 分析

    注意有时候锁屏并不是 以apk的形式存在的 直接在系统内部有一个锁屏框架 源文件路径主要Android2 2和2 3版本 有两个 xff1a frameworks base policy src com android internal p
  • 机器人操作系统ROS是什么?

    目录 1 什么是ROS 2 ROS的许可协议 3 ROS的主要发行版本 4 ROS的主要功能 5 ROS的应用 6 ROS开发的常用工具 7 ROS的优点 8 ROS的缺点 1 什么是ROS ROS是机器人操作系统 xff08 Robot
  • grub menu.list 配置

    因重装系统 xff0c 把GRUB引导菜单搞没了 xff0c 一直不知道怎么找回来 xff0c 今天看到贴子 xff0c 试了下 xff0c 成功了 主要步骤是下边兰字部分t 而恢复Grub xff0c 其实也很简单的 xff1a 用Liv
  • Android 11 行为变更 :所有应用

    Android 11 平台包含一些行为变更 xff0c 这些变更可能会影响您的应用 以下行为变更将影响在 Android 11 上运行的所有应用 xff0c 无论其采用哪种 targetSdkVersion 都不例外 您应该测试您的应用 x
  • Spring中的Bean的管理(史上最全)

    1 BeanFactory接口 本文介绍Spring里的BeanFactory 包括 xff1a BeanFactory 和 FactoryBean的ApplicationContext的委托 BeanFactory 和 FactoryBe
  • vue-lottie控制动画的播放、暂停、跳转帧数

    lottie 简介 Lottie适用于Android iOS iOS Web React Native React Native https github com airbnb lottie react native 和Windows Lo
  • vm安装vmtools

    vm安装vmtools vmtools安装栏为灰色 关闭虚拟机选择 虚拟机设置 xff0c 分别添加一个 软盘 和一个 CD DVD xff0c 并将其 连接 选项全部更改为 使用物理驱动器 此时 重新安装VMware Tools 选项即可

随机推荐