IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python包类型(Wheel、Source等)详解 -> 正文阅读

[Python知识库]Python包类型(Wheel、Source等)详解

我们平时下载安装的python包统称为Distribution Package,而其中,又可分为Built Distribution(Wheel即为其中一种)和Source Distribution。

其中具体区别,请参见如下??????官网文档节选:

Distribution Package

A versioned archive file that contains Python?packages,?modules, and other resource files that are used to distribute a?Release. The archive file is what an end-user will download from the internet and install.

Binary Distribution

A specific kind of?Built Distribution?that contains compiled extensions.

Built Distribution

A?Distribution?format containing files and metadata that only need to be moved to the correct location on the target system, to be installed.?Wheel?is such a format, whereas distutil's?Source Distribution?is not, in that it requires a build step before it can be installed. This format does not imply that Python files have to be precompiled (Wheel?intentionally does not include compiled Python files).

为进一步理解Built Distribution和Binary Distribution的区别,给出如下两个示例:

1.使用pip安装numpy包

$ pip install numpy
Collecting numpy
  Downloading numpy-1.19.4-cp36-cp36m-manylinux2010_x86_64.whl (14.5 MB)
     |████████████████████████████████| 14.5 MB 15.1 MB/s 
Installing collected packages: numpy
Successfully installed numpy-1.19.4

可以发现,安装的numpy包的后缀名为.whl,即安装的为wheel文件,也即Built Distribution的一种,安装过程非常简单,且处理迅速。但这也给开发者带来了多平台兼容的困难。

2.使用pip安装uWSGI包

$ pip install uwsgi
Collecting uwsgi
  Downloading uWSGI-2.0.19.1.tar.gz (803 kB)
     |████████████████████████████████| 803 kB 274 kB/s 
Building wheels for collected packages: uwsgi
  Building wheel for uwsgi (setup.py) ... done
  Created wheel for uwsgi: filename=uWSGI-2.0.19.1-cp36-cp36m-linux_x86_64.whl size=597269 sha256=f2289db3db6d625f136f794be0319da477ad740eb28cd063971f8d335327c09c
  Stored in directory: /private/.cache/pip/wheels/3a/7a/c1/492f02e0cde1e39f8b75c79dc5ef3b7e2c93b02e3a7eaabe0c
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.19.1

可以发现,安装的uWSGI包的后缀名为常见的压缩格式.tar.gz,这实际上就表示它为Source Distribution,即为经过编译的包发行版本。从上图流程中可以看到,Source Distribution相较于Built Distribution,多了在用户电脑上编译这一步,因此下载时往往需要附带编译依赖项,也就意味着更大的文件体积、更复杂的安装过程与更慢的处理速度。但由于未提前编译,所以更有利于多平台兼容。

综上所述

Wheel包的好处可概括为以下几点:

  1. 安装快;
  2. 一般比源发行版体积小很多。比方说matplotlib,它的wheel包最大只有11.6MB,而源码却有37.9MB。网络传输的压力显然是wheel小;
  3. 免除了setup.py的执行。setup.py是Python的disutils、setuptools编译机制所需要的文件,需要执行大量的编译、安装工作,如果没有wheel的存在,包的安装、维护都会很麻烦;
  4. 不需要编译器。pip在下载时帮你确定了版本、平台等信息;
  5. 使用wheel的话,pip自动为你生成.pyc文件,方便Python解释器的读取。
    ?

参考文献:

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:14:01  更:2022-04-06 16:15:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:31:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码