1、标准库工具distutils,2000年发布,是包安装和发布工具

       setup.python 程序,利用distutils 开发

      示例:

     python setup.py install  安装一个包

     python setup.py sdist    发布一个包为tar.gz

    python setup bdist_rpm//发布为rpm

    python setup bdist_wininst发布为exe

2、setuptools====distribute

     setuptools是一个为了增强 distutils 而开发的集合,2004年发布。它包含了easy_install这个工具。

    使用 setuptools(easy_install) 可以自动下载、构建、安装和管理python 模块。

    ez_setup.py是 setuptools 的安装工具。ez就是easy的缩写。

    示例:

   python easy_install xxxobj

   python easy_install http://xxx.tar.gz//网络压缩包

   python easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg//安装一个egg格式的模块

3、Eggs are to Pythons as Jars are to Java..

4、pip 2008年发布

pip是目前 python 包管理的事实标准,2008年发布。

它被用作easy_install的替代品,但是它仍有大量的功能建立在 setuptools 组件之上。

pip 希望不再使用Eggs格式(虽然它支持 Eggs),而更希望采用“源码发行版”(使用python setup.py sdict创建的模块包)。

这可以充分利用Requirements File Format提供的方便功能。

pip 可以利用 requirments.txt 来实现在依赖的安装。

在setup.py中,也存在一个install_requires表来指定依赖的安装。它们的区别在哪里?可以看这篇文章:setup.py vs requirements.txt(中文版)。

pip 支持 [git/svn/hg 等流行的 VCS 系统],可以直接从 gz 或者 zip 压缩包安装,支持搜索包,以及指定服务器安装等等功能。

5、wheel

wheel本质上是一个 zip 包格式,它使用 .whl 扩展名,用于 python 模块的安装,它的出现是为了替代 Eggs。

wheel 还提供了一个bdist_wheel作为 setuptools 的扩展命令,这个命令可以用来生成 wheel 包。

pip 提供了一个 wheel 子命令来安装 wheel 包。当然,需要先安装 wheel 模块。

setup.cfg可以用来定义 wheel 打包时候的相关信息。

Wheel vs Egg详细介绍了 wheel 和 Eggs 格式的区别,很显然,wheel 优势明显。

Python Wheels网站展示了使用 Wheels 发行的 python 模块在 PyPI 上的占有率。

pypip.in也支持 wheel。

6. distutils2 和 distlib

distutils2被设计为distutils的替代品。从2009年开发到2012年。它包含更多的功能,并希望以packaging作为名称进入 python 3.3 成为标准库的一部分。但这个计划后来停滞了。

distlib是distutils2的部分,它为distutils2/packaging提供的低级功能增加高级 API,使其便于使用。

这里介绍了 distlib 没有进入 python 3.3 标准库的一些原因。

因此,可以暂时不必了解这两个工具,静观其变即可。

最新文章

  1. System.Security.Cryptography.CryptographicException,密钥集不存在
  2. 用户、角色、权限三者多对多用hibernate的一对多注解配置
  3. x01.os.10: 输入输出
  4. uniq命令注意事项,检查重复行的时候,只会检查相邻的行。
  5. margin设置为百分比的含义
  6. Unity3D如何获取对象和子对象
  7. java实现各种数据统计图(柱形图,饼图,折线图)
  8. MyMVC框架的使用
  9. 一个例子让你了解Java反射机制
  10. ionic常用命令记录
  11. php计算多个集合的笛卡尔积实例详解
  12. JAVA基础—线程池
  13. RABBITMQ too many heartbeats missed
  14. SAP MM PO 中的Delivery Date并非保存在EKPO表里
  15. WEB漏洞 XSS(一)
  16. hdu1937 二维尺取
  17. C# WPF Halcon HDevEngine混合编程
  18. 多线程(模拟买票)-----java基础知识总结
  19. Windows 7防火墙阻止了远程桌面连接的解决方法
  20. X264编码流程详解(转)

热门文章

  1. C# 之 代码实现延时
  2. 刷题5. Longest Palindromic Substring
  3. 「JSOI2015」圈地
  4. 初始css一
  5. Raid 10配置流程(五块磁盘)
  6. dockerfile的编写参数
  7. if语句的汇编表示
  8. MyBatis 传一个类型为String的参数时常见问题及解决方法
  9. 部署etcd中使用ansible进行变量初始化
  10. springboot学习4使用日志:logback