小编典典

为什么使用 pip 而不是 easy_install?

all

一条推文写道:

不要使用easy_install,除非你喜欢刺伤自己的脸。使用点子。

为什么使用 pip 而不是 easy_install?主要不是PyPI
和包作者的错
吗?如果作者将垃圾源 tarball(例如:缺少文件,没有 setup.py)上传到 PyPI,那么
pip 和 easy_install 都会失败。除了外观上的差异,为什么 Python 人(如上面的推文)似乎更 喜欢 pip 而不是
easy_install?

(假设我们谈论的是来自社区维护的 Distribute 包中的 easy_install)


阅读 174

收藏
2022-02-28

共1个答案

小编典典

这里的许多答案在 2015 年都已过时(尽管Daniel Roseman
最初接受
的答案并非如此)。这是目前的情况:

  • 二进制包现在以轮子(.whl文件)的形式分发——不仅仅在 PyPI 上,而是在第三方存储库中,例如Christoph Gohlke 的 Windows 扩展包pip可以处理轮子;easy_install不能。
  • 虚拟环境(3.4 内置,或者可以添加到 2.6+/3.1+ 中virtualenv)已经成为一个非常重要和突出的工具(并在官方文档中推荐);它们包括pip开箱即用,但甚至不能与easy_install.
  • distribute包含的软件包easy_install不再维护。它的改进setuptools被合并回setuptools. 尝试安装distribute只会安装setuptools
  • easy_install本身只是准维护。
  • 过去所有的情况都不pipeasy_install“从未打包的源代码树、从 DVCS 存储库等安装”,早已不复存在;你可以pip install .pip install git+https://
  • pip附带来自 python.org 的官方 Python 2.7 和 3.4+ 包,pip如果您从源代码构建,则默认包含引导程序。
  • 关于安装、使用和构建包的各种不完整的文档已被Python Packaging User Guide所取代。Python 自己的关于安装 Python 模块的文档现在遵循此用户指南,并明确pip称为“首选安装程序”。
  • 多年来添加的其他新功能pip永远不会出现在easy_install. 例如,pip通过构建需求文件然后在每一侧使用单个命令安装它,可以轻松克隆您的站点包。或者将您的需求文件转换为本地存储库以用于内部开发。等等。

我知道easy_install在 2015 年使用的唯一充分理由是在 OS X 10.5-10.8 中使用 Apple 预装的 Python
版本的特殊情况。自 10.5 起,Apple 已easy_install包含pip. get-pip.py对于10.9+
,您仍然应该使用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如果你想升级它。

2022-02-28