Skip to content
xiewen edited this page Dec 15, 2014 · 1 revision

distutils

构建和发布的底层函数库,是 Python 的一个标准库。

setuptools

Python Enterprise Application Kit(PEAK)的一个副项目。 setuptools 替换了标准的 distutils 库,并为 Python 添加了版本化的包和依赖性管理。

和 distutils 相比的优点是:

  • 增强了 distutils 的功能并简化了 setup.py 脚本中的内容
  • setuptools 最大的优势是它在包管理能力方面的增强 ** 它可以使用一种更加透明的方法来查找、下载并安装依赖包 ** 并可以在一个包的多个版本中自由进行切换,这些版本都安装在同一个系统上 ** 也可以声明对某个包的特定版本的需求 ** 还可以只使用一个简单的命令就能更新到某个包的最新版本 ** 给人印象最为深刻的是,即使有些包的开发人员可能还从未考虑过任何 setuptools 兼容性问题,我们依然可以使用这些包。

distribute

setuptools 的一个分支,现已废弃。从 2013 年 setuptools 0.7 开始,已将 distribute 合并进入 setuptools

计划替代 distutils,和 distutils 不兼容、没有依赖关系

计划加入 Python 3.3 的标准库,但因为 PEP 标准未确定下来等一些原因,现在还是 alpha 版本,开发也停掉了。因此不建议使用,仍然建议用 setuptools

EasyInstall

包管理器。

easy_install 是 setuptools 里带的一个命令,可以自动下载、构建、安装、管理 Python 软件

包管理器。

pip v1.5.1 以前依赖 setuptools ?

Python 3.4 开始作为默认安装的组件

和 easy_install 比较:

优点

  • 先下载全部软件包、再安装,避免了安装部分成功、部分失败的状态
  • 控制台输出、操作追踪、错误信息更加清晰、功能得到增强
  • 代码更简洁
  • 支持版本控制系统
  • 支持删除软件包
  • 支持一组自定义的依赖安装包?

缺点

  • 不支持二进制发布包
  • 对 Windows 的支持不是很好

PyPI

软件仓库,Python Package Index。相当于 Perl 的 CPAN 资源库

Eggs

Python 软件包的一种发布格式。Eggs are to Pythons as Jars are to Java

是一个以 .egg 结尾的 zip 压缩文件,也可以是未压缩的目录,setuptools 会决定(或被开关告知)包不应该是 zip 压缩的。

新格式的软件发布包,取代 Eggs

Clone this wiki locally