目录
前言
鸽了那么久终于决定把坑填完……本篇打算承接上一篇,讲讲python wheel包的创建。原则上需要涵盖的内容挺多的,但碍于篇幅只能把最相关的部分提炼出来。一般的开发者需要用到这部分内容的其实不多,但谁知道呢——也许哪一天愿意为开源社区提供自己写的程序包时,希望这篇博客能带来一定的指导。
前置准备
python的打包工具有很多,setuptools
虽然已不能算是默认,但仍是目前最为流行的一种。首先,得确认自己的系统上有wheel
和setuptools
两个模块:
pip install wheel setuptools --user
setuptools
是用来完成打包动作的wheel
是setuptools
的一个衍生插件,提供一些命令行指令用于和wheel包交互
一、wheel包的种类
- Universal wheel:带有
py2.py3-none-any.whl
在名字中的包。对python2和python3、操作系统等均没有要求,兼容性极好。 - Pure-python wheel:带有
py3-none-any.whl
或py2-none-any.whl
在名字中的包。和universal wheel相比,仅仅在python的版本上有所要求。 - Platform wheel:对python版本和操作系统等都会有要求。创建这种类型的wheel一般意味着内部使用了一些由静态语言编写的代码(如C++)。这些代码在编译时会对平台有所要求,所以造成wheel包也会有平台依赖。
pip install
在执行的时候会去寻找和当前环境兼容的版本,如果未找到兼容的版本,但是找到源发行版的话,会下载源发行版在本地进行编译安装;如果源发行版也找不到,那安装就会报错了。
二、wheel包的打包过程
2.1 pyproject.toml
pyproject.toml
是在PEP518中被引入作为注明一个Py