文章目录
- 目的
- 准备知识
- PyPI
- PyPA
- setuptools
- build
- twine
- 实战过程
- 总结
目的
如果发布一个python包到pypi上,共他人使用,本文试图讲清楚。
准备知识
PyPI
官网地址:https://pypi.org/
全称Python Package Index(Python包索引),是 Python 编程语言的软件存储库。网站版权归Python软件官方基金会所有。
我们使用pip install
安装的包,就是从这个站点(或它的镜像站)下载的,而这些包也都是其他开发者上传共享的。
这是一个公开的平台,只要注册一个账号,就有权限将包发布上去。下面我们就具体一步步做。
PyPA
官网文档地址:https://www.pypa.io/en/latest/
Github地址:https://github.com/pypa
全称Python Packaging Authority(python打包权利机构),这是一个开源Group,专门维护Python打包及发布所用到的一些工具。pip
即由该团队维护,后文要用到的各种工具,基本都出自这个组织。
setuptools
官方文档:https://setuptools.pypa.io/en/latest/index.html
Github:https://github.com/pypa/setuptools
setuptools是PyPA提供的包构建系统,使用它,我们只需写一份配置文件(pyproject.toml
or setup.cfg
or setup.py
)即可,不需要太去深究其内部。
build
官方文档:https://pypa-build.readthedocs.io/en/latest/index.html
Github:https://github.com/pypa/build
build
由PyPA在2020年发布了第一个版本,它提供一个命令行构建命令python -m build
,即可轻松构建发布文件。
在这之前,我们必须使用python setup.py
进行包的构建,带来很多问题,目前setuptools官方文档已经不在推荐在不必要的情况加编写setup.py
文件,尽量用pyproject.toml
或 setup.cfg
代替。
twine
官方文档:https://twine.readthedocs.io/en/stable/
Github:https://github.com/pypa/twine
twine是PyPA开发的一个PyPI交互程序,可以轻松将已build好的文件上传到PyPI,以供其他人下载。
实战过程
首先,安装前面提到的必要工具
pip install --upgrade build twine
撰写pyproject.toml
文件
[project]
name = "pywencai"
version = "0.0.1"
dependencies = [
"PyExecJS",
"requests",
"pandas"
]
梳理好宝目录结构
将包进行打包
python -m build
成功后,将其推送至pypi
twine upload dist/*
该命令需要你输入pypi的用户名和密码,没有的话可以免费注册
可以看到,包被成功发布到pypi,访问地址 https://pypi.org/project/pywencai/0.0.1/
总结
这是一个最简单的发布过程,并不一定会满足所有情况,比如我们想打包一些额外的文件,想撰写包的描述等,这些工作可能都是我们需要的。
但是,build
工具的官方文档极其简单,并没有过多的关于这些配置的说明,实现起来很容易摸不到头脑。
所以,这里推荐另一个工具:Peotry,用它来管理包和发布包将会更简单,后面发文分享。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)