先来看一下uwsgi的安装过程:
pip install uwsgi
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting uwsgi
Downloading 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: uwsgi
Building wheel for uwsgi (setup.py) ... done
Created wheel for uwsgi: filename=uWSGI-2.0.20-cp27-cp27m-macosx_10_15_x86_64.whl size=461787 sha256=82931f5ae82d58901e6be4937c9294518318e63ad695aadc1eb0daef9d7e8ff4
Stored 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 ipython
Downloading 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格式包