先来看一下uwsgi的安装过程:

pip install uwsgi
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting uwsgiDownloading https://pypi.tuna.tsinghua.edu.cn/packages/24/fd/93851e4a076719199868d4c918cc93a52742e68370188c1c570a6e42a54f/uwsgi-2.0.20.tar.gz (804 kB)|████████████████████████████████| 804 kB 6.0 MB/s
Building wheels for collected packages: uwsgiBuilding wheel for uwsgi (setup.py) ... doneCreated wheel for uwsgi: filename=uWSGI-2.0.20-cp27-cp27m-macosx_10_15_x86_64.whl size=461787 sha256=82931f5ae82d58901e6be4937c9294518318e63ad695aadc1eb0daef9d7e8ff4Stored in directory: /Users/zhangli53/Library/Caches/pip/wheels/17/12/d8/b93accd1c983f6e708bb2578670fff8da916674efd86e5c701
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.20

pipy官网uwsgi的下载页面:
https://pypi.org/project/uWSGI/#files

=========================================================================================
下面是安装 ipython的过程:

pip install ipython
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting ipythonDownloading https://pypi.tuna.tsinghua.edu.cn/packages/ce/2c/2849a2b37024a01a847c87d81825c0489eb22ffc6416cac009bf281ea838/ipython-5.10.0-py2-none-any.whl (760 kB)|████████████████████████████████| 760 kB 10.3 MB/s
Installing collected packages: ipython
Successfully installed ipython-5.10.0

pipy官网ipython的下载页面:
https://pypi.org/project/ipython/5.10.0/#files

比较python在安装两个包的时候所走的过程不同:

uwsgi ipython
安装过程 1、下载tar包。 2、编译,创建,存储wheel包。3、安装wheel包。 4、完成 1、下载wheel包。3、安装wheel包。 4、完成
官网支持包格式 tar whl、tar

由两个安装包的比较,可以看到,pip工具的优先安装包(来自pipy)是先查找whl格式包,若没有此格式,再查找tar格式包,从而来安装。

那么wheel(轮子:缩写whl)包到底是个啥?
wheel格式的包,是第三方包在安装到服务环境的过程中,根据当前python的版本,由tar包编译而成的二进制安装包,用于安装具体的包。

Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代.egg。

比较:
Wheel有一个官方的PEP427来定义,而Egg没有PEP定义。
Wheel是一种分发格式,即打包格式。而Egg既是一种分发格式,也是一种 运行时安装的格式,并且是可以被import的。
Wheel文件不会包含.pyc文件
Wheel使用和PEP376兼容的.dist-info目录,而Egg使用.egg-info目录。
Wheel有着更丰富的命名规则。
Wheel是有版本的,每个Wheel文件都包含wheel规格的版本和打包它的实现。
Wheel在内部被sysconfig path type管理,因此转向其他格式也更容易。

都是python 的包,可以用来安装的

whl:
pip install xx.whl
egg:
ez_install install xx.egg

whl包的制作:
python setup.py build # 编译
python setup.py sdist # zip格式包
python setup.py bdist_wininst # exe格式包
python setup.py bdist_rpm # rpm格式包

pipy 的whl和egg的区别相关推荐

  1. Python 之打包工具 setup.py

    1. 为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包. 打包,就是将你 ...

  2. LienJack-2年前端面试心路历程(字节跳动、YY、虎牙、BIGO)

    LienJack-2年前端面试心路历程(字节跳动.YY.虎牙.BIGO) 大厂面经 字节跳动 1 面 对 tree-shaking 的了解 虽然生产模式下默认开启,但是由于经过 babel 编译全部模 ...

  3. offer收割机: 字节跳动、YY、虎牙、BIGO

    推荐:一个非常强的小哥哥, 逆袭成功-- 作者:lienjack https://juejin.im/post/5e85ec79e51d4547153d0738 由于微信禁止外链,为了更好的阅读体验, ...

  4. 2 年前端面试字节跳动、YY、虎牙、BIGO心路历程总结

    作者 | LienJack 来源 | https://juejin.im/post/5e85ec79e51d4547153d0738 本文将先从个人背景讲起,然后谈谈在字节跳动.虎牙.YY 以及 BI ...

  5. python项目使用setuptools和rpmbuild构建rpm包

    python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包 一.setuptools 二.使用rpmbui ...

  6. 2年前端(外包经历) 6月部分面试记录 (高级、资深岗位)

    本人一年小公司,2年前端大厂外包经历,坐标杭州,记录6月份部分面试记录,还有一部分忘的太多没记录. 讯盟科技  (拿offer) "我自己是一名从事了6年web前端开发的老程序员,今年年初我 ...

  7. python如何离线安装第三方库_Python在线和离线安装第三方库的方法

    Python在线和离线安装第三方库的方法 Windows环境: (1)离线安装 首先在线搜索并下载你需要的第三方库:网址https://pypi.org/project/ 安装whl包: pip in ...

  8. python 打包egg_将Python程序打包到egg或WHL安装包或exe包中,把,python,成,或者,whl

    目的: 把个人开发的公共包制作成whl 然后放入pip私有源中,局域网内使用 步骤: 1.安装setuptools 首先安装setuptools工具:pip install setuptools 或更 ...

  9. python打包成安装包_把 python 程序打包成 egg 或者 whl 安装包

    1.1 安装setuptools 首先要安装setuptools工具.Debian/Ubuntu下可以直接使用apt安装: $ sudo apt-get install python-setuptoo ...

最新文章

  1. 北京清华长庚医院与数据院签约,医工结合促医疗大健康发展
  2. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序打印字符串 | 递归要素 | 递归停止条件 | 递归操作 )
  3. 用python读取文档_python读取word文档
  4. 剖析 | torch.nn.functional.softmax维度详解
  5. Java中创建对象的5种方式
  6. 《Agile Impressions》作者问答录
  7. eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central
  8. CASIO 5800P计算器游戏--猜数字游戏
  9. mysql80压缩版安装_裕-安装MySQL80(压缩版)
  10. Current在Java里面_在C#中相当于Java System.currentTimeMillis()
  11. [导入]给老家新楼的对联
  12. Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】...
  13. mysql数据库创建删除带横杠的数据库名
  14. 开源阅读书源_开源阅读——(免费)
  15. Springboot毕设项目基于协同过滤算法的体育用品推荐系统9s658java+VUE+Mybatis+Maven+Mysql+sprnig)
  16. dns被劫持了怎么处理 5种方法教你处理
  17. python的socket
  18. 余弦相似度-C#代码实现
  19. 光纤分类——多模和单模
  20. Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程

热门文章

  1. 2020年中国医药冷链物流行业市场规模及企业发展情况分析[图]
  2. oninput 事件- 输入提示-纯函数
  3. Python爬虫 基于Beautiful Soup的糗事百科爬虫
  4. 认知智能真的来了?且看道翰天琼认知智能三大技术体系!认知智能真的来了。
  5. iOS线上APP崩溃(Crash)分析
  6. TDD测试驱动开发学习心得
  7. 那根胡萝卜---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十五)
  8. Springboot 接口允许跨域访问
  9. 通过AOA传输Camera编码后数据在另一个手机上解码显示
  10. 法国轻奢首饰品牌丽爵杰在沪揭幕中国首家精品店