为什么使用点数超过easy_install?

2022-09-05 01:14:14

条推文写道:

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

为什么使用点数超过easy_install?难道错误主要不在于PyPI和软件包作者吗?如果作者将垃圾源码球(例如:缺少文件,没有 setup.py)上传到PyPI,那么pip和easy_install都将失败。除了表面上的差异之外,为什么Python人(如上面的推文)似乎强烈支持pip而不是easy_install?

(假设我们正在谈论由社区维护的Distribution包中的easy_install)


答案 1

来自Ian Bicking自己对pip的介绍

pip最初是为了通过以下方式改进easy_install而编写的

  • 所有软件包在安装之前都已下载。因此,不会发生部分完成的安装。
  • 请注意在控制台上显示有用的输出。
  • 跟踪操作的原因。例如,如果正在安装一个软件包,pip会跟踪为什么需要该软件包。
  • 错误消息应该很有用。
  • 该代码相对简洁且具有内聚性,因此更易于以编程方式使用。
  • 软件包不必作为蛋归档安装,它们可以平放安装(同时保留蛋元数据)。
  • 对其他版本控制系统(Git、Mercurial 和 Bazaar)的本机支持
  • 卸载软件包。
  • 易于定义固定的需求集,并可靠地再现一组包。

答案 2

这里的许多答案在2015年已经过时了(尽管丹尼尔·罗斯曼(Daniel Roseman)最初接受的答案并非如此)。以下是事情的当前状态:

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

据我所知,在2015年使用的唯一好理由是将Apple预装的Python版本与OS X 10.5-10.8一起使用的特殊情况。自10.5以来,Apple已经包含,但截至10.10,它们仍然不包括。对于10.9 +,您仍然应该只使用,但是对于10.5-10.8,这有一些问题,因此更容易。(一般来说,这是一个坏主意;只有OS X 10.5-10.8你才想这样做。此外,10.5-10.8以一种知道如何四处走动但不在的方式包含,所以如果你想升级它,你也想要。easy_installeasy_installpipget-pip.pysudo easy_install pipeasy_install pipreadlineeasy_installpipsudo easy_install readline