推文内容如下:
不要使用 easy_install,除非你喜欢刺伤自己的脸。使用点子。
为什么要使用 pip 而不是 easy_install?问题不在于 PyPI 和包装作者吗?如果作者将垃圾源 tarball(例如:丢失文件,没有 setup.py)上传到 PyPI,那么 pip 和 easy_install 都将失败。除了化妆品差异,为什么 Python 人(如上面的推文)似乎强烈支持 pip 而不是 easy_install?
(我们假设我们正在讨论来自 Distribute 包的 easy_install,这是由社区维护的)
这里的许多答案都是 2015 年的过时(尽管丹尼尔罗斯曼最初接受的答案不是)。这是现状:
.whl
文件)分发 - 不只是在 PyPI 上,而是在第三方存储库中,如Christoph Gohlke 的 Windows 扩展包 。 pip
可以处理轮子; easy_install
不能。 virtualenv
添加到 2.6 + / 3.1 +)已经成为一个非常重要和突出的工具(并在官方文档中推荐); 它们包括开箱即用的pip
,但是甚至无法使用easy_install
正常工作。 easy_install
的distribute
包。它对setuptools
改进已合并回setuptools
。尝试安装distribute
只会安装setuptools
。 easy_install
本身只是准维护。 pip
曾经不如easy_install
从解压缩的源代码树,DVCS 仓库等安装 - 的情况都很久了; 你可以pip install .
, pip install git+https://
。 pip
附带来自 python.org 的官方 Python 2.7 和 3.4 + 软件包,如果你从 source 构建,默认包含一个pip
引导程序。 pip
称为 “首选安装程序”。 pip
多年来永远不会在easy_install
。例如, pip
可以通过构建需求文件然后在每一侧使用单个命令安装它来轻松克隆您的站点包。或者将您的需求文件转换为本地仓库以用于内部开发。等等。 我知道在 2015 年使用easy_install
的唯一原因是使用 Apple 预装的 Python 版本与 OS X 10.5-10.8 的特殊情况。自 10.5 以来,Apple 已经包含了easy_install
,但截至 10.10,他们仍然不包括pip
。使用 10.9+,你应该只使用get-pip.py
,但对于 10.5-10.8,这有一些问题,所以sudo easy_install pip
更容易。 (一般来说, easy_install pip
是一个坏主意; 它只适用于 OS X 10.5-10.8,你想要这样做。)另外,10.5-10.8 包含readline
,方式是easy_install
知道如何克服,但pip
没有,所以如果你想升级它,你也想要sudo easy_install readline
。
另一个 - 因为尚未提及 - 支持pip的原因是因为它是新的热点并将继续在未来使用。
下面的信息图 - 来自The Hitchhiker's Guide to Packaging v1.0 中的当前包装状态部分 - 显示 setuptools / easy_install 将来会消失。
这是来自distribute 文档的另一个信息图,显示Setuptools和 easy_install 将被新的 hotness- distribute和pip取代。虽然pip仍然是新的热点 ,但随着Setuptools v0.7 的发布, Distribute在 2013 年与Setuptools合并。