python wheel 安装包的制作与安装

1. 什么是wheel安装包

wheel是python新的发行标准,旨在替代传统的egg,pip >=1.4的版本均支持wheel, 使用wheel作为你python库的发行文件,有如下好处:

  1. 纯Python和本机C扩展软件包的安装速度更快
  2. 避免执行任意代码进行安装。(避免setup.py)
  3. C扩展的安装不需要在Linux,Windows或macOS上进行编译
  4. 允许更好地缓存以进行测试和持续集成
  5. 在安装过程中创建.pyc文件,以确保它们与使用的Python解释器匹配
  6. 跨平台和机器的安装更加一致

本质上,wheel是一个zip压缩文件,将.whl扩展名替换为.zip,你就可以使用zip应用程序打开它,可以想象pip在安装wheel文件时,其过程也正是对它进行解压,然后复制到site-packges目录下,当然,实际的过程要比我刚才描述的要复杂一些,毕竟有很多事情要做,比如安装依赖。下面的代码向你展示如何解压一个wheel安装文件

from zipfile import ZipFile

with ZipFile("notebook-7.0.0-py3-none-any.whl", allowZip64=True) as z:
    z.extractall("./notebook")

解压后,可以在notebook目录下找到两个文件夹,分别是notebook-7.0.0.dist-info 和 notebook, notebook是源文件,notebook-7.0.0.dist-info是一些关键的安装信息, entry_points.txt中记录的是notebook的命令入口信息,METADATA记录了notebook的元信息,比如安装依赖,适用的平台,支持的python版本等等,pip就是根据这里的信息对库进行安装的。

2. 如何制作wheel安装包

制作wheel安装包的前提是编写setup.py文件,关于setup.py的制作,可以阅读我的另一篇文章python库打包分发setup.py编写指南

安装wheel库

pip install wheel

制作whl文件非常简单

pip wheel --wheel-dir=/root/whl ./

--wheel-dir 指定生成.whl文件的存储位置,上面的命令,我是进入到setup.py文件所在目录执行的,因此使用的./ 表示当前目录,你可以在任意位置执行上面的命令,但是最后一部分必须是setup.py所在的目录。在setup.py所在的目录里,请将库的安装依赖写入到requirements.txt文件中,在制作.whl 安装包时会将requirements.txt里的安装依赖写入到dist-info 里的METADATA文件中。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案