首页 > 编程语言 >python包上传到pypi过程

python包上传到pypi过程

时间:2023-06-02 12:06:41浏览次数:65  
标签:包上 python testpypi pypi simple export https org


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

简短单句摘要

readme

readme文件的路径

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 <[email protected]>"]
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包上传到pypi过程_上传

# 如果有虚拟环境需要进入虚拟环境 直接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)


标签:包上,python,testpypi,pypi,simple,export,https,org
From: https://blog.51cto.com/u_16015778/6401417

相关文章

  • 项目场景:python pyqt5 threading 多线程 数据混乱
    项目场景:pythonpyqt5threading多线程数据混乱根据配置文件多线程调用接口#问题描述:参考http://www.starky.ltd/2019/09/23/pro-python-concurrency-with-multi-threading/多线程调用接口,取得数据回调修改页面上的值发生混乱不准#原因分析:运行线程数量过多没有顺序......
  • python 使用 openpyxl 操作 excel
    python使用openpyxl操作excel文章目录python使用openpyxl操作excel前言1.环境2.读取数据3.openpyxl前言二、使用zipfile、openpyxl、flask批量导出excelzip1.环境openyxl:3.0.6python:3.7.6pandas:1.3.52.读取数据#使用pandas读取数据#https://pandas.pydata.org/docs......
  • python 中json数据可以以类似数组的方法访问 print(j["age"]["nian"])
    使用Python处理Json数据-猫坚果NutCat-博客园(cnblogs.com)JSON模组的常用方法load/loads:把JSON转换为Python#somejsonsomebody_info='{"name":"WenjieYe","age":75,"nationality":"China"}'#parse......
  • Python中字典取值常用的方法!
    字典是Python中比较常见的数据类型之一,它是一种可变容器模型,可以存储任意数量的任意类型的数据,而且字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔。本文为大家介绍一下Python中字典取值常用的方法,跟着学习一下吧。1、使用方括号[]运算符使用方括号[]运算......
  • python算法学习——第1天
    目录1、3,5,7的倍数判定2、鸡兔同笼3、计算有n个字符串中最长的字符串长度4、输出10个不重复的英文字母5、统计一段文字的单词个数并按字母顺序排序输出6、字典合并7、最大公约数&最小公倍数8、输出全排列9、输出<=n的全部回文数10、重复元素判定1、3,5,7的倍数判定num=int(inp......
  • python datetime 获取本月第一天 上月最后一天
    完整代码importdatetime(datetime.date.today().replace(day=1)-datetime.timedelta(days=1)).strftime("%Y-%m")获取本月第一天byyc=datetime.date.today().replace(day=1)获取上月最后一天syym=byyc-datetime.timedelta(days=1)获取上月月份sy=syym.strftime("%Y......
  • python操作InfluxDB
    InfluxDB版本:1.8.0以下针对1.x版本influxdb操作语法python针对influxdb的操作安装模块pipinstallinfluxdbfrominfluxdbimportinfluxDBClientconn_db=InfluxDBClient('localhost','8086','username','password','db_name')#1、显示已存在的......
  • asyncio:python3未来并发编程主流、充满野心的模块
    https://www.cnblogs.com/traditional/p/11828780.html楔子asyncio是Python在3.5版本中正式引入的标准库,这是Python未来并发编程的主流,非常重要的一个模块。有一个Web框架叫sanic,就是基于asyncio,使用sanic可以达到匹配Go语言的并发量(有点夸张了,还是有差距的,但......
  • python正则表达式之道
    Python使用正则表达式的步骤:1、导入正则表达式模块2、创建Regex对象re.compile(),传入正则表达式3、使用search()方法,传入字符串4、调用group()方法。举例:importre #1ne=re.compile(r'\d\d\d\-\d\d') #2mo=ne.search('yourdatasis456-11.') #3print(mo.gro......
  • 十二、python元组tuple
    十二、python元组tuple元组就相当于是只读的列表;因为只读,所以没有append,remove,修改等操作方法.它只有两个操作方法:count,index元组,字符串,列表都属于序列.所以元组也可以切片.1.元组的创建列表使用中括号,元组使用小括号。tuple1=(1,2,3,4,5,1,7)print(type(tuple1))......