为什么使用点子容易

推文如下:

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

为什么使用pip over easy_install? PyPI和包装作者大部分都不会犯这个错误吗? 如果作者将垃圾源tarball(例如:缺少文件,无setup.py)上传到PyPI,则pip和easy_install都将失败。 除了表面上的差异,为什么Python人(比如上面的推文)似乎强烈支持easy_install点数?

(让我们假设我们正在讨论由社区维护的Distribute包中的easy_install)


这里的许多答案在2015年已过时(尽管Daniel Roseman最初接受的答案并不是)。 以下是目前的状况:

  • 二进制软件包现在作为轮子( .whl文件)分发 - 不仅仅在PyPI上,而且在第三方存储库中,例如Christoph Gohlke的Windows扩展包。 pip可以处理轮子; easy_install不能。
  • 虚拟环境(内置3.4,或者可以通过virtualenv添加到2.6 + / 3.1 +)已经成为一个非常重要和突出的工具(并且在官方文档中推荐)。 它们包括开箱即用的pip ,但甚至不能使用easy_install正常工作。
  • 包含easy_installdistribute包不再维护。 它对setuptools改进已经合并回setuptools 。 尝试安装distribute将仅安装setuptools
  • easy_install本身只是准维护。
  • 所有pip用于比easy_install安装 - 从解压源代码树安装,从DVCS回购等等安装的情况都很久了; 你可以点击pip install .pip install git+https://
  • pip自带python.org的官方Python 2.7和3.4+包,默认情况下包含pip bootstrap,如果您从源代码构建。
  • 关于安装,使用和构建软件包的各种不完整的文档已被Python打包用户指南取代。 Python自己关于安装Python模块的文档现在遵循本用户指南,并明确地将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包含readlineeasy_install知道如何组装,但pip不支持,所以你也想要sudo easy_install readline如果你想升级。


    从Ian Bicking自己的介绍到pip:

    pip最初是通过以下方式编写的,旨在改进easy_install

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

  • 另一个 - 尚未提及的 - 支持点差的理由是因为这是新的热点,并且将来会继续使用。

    下面的图表来自“打包版本1.0漫游指南”中的“当前打包状态”部分 - 显示setuptools / easy_install将在未来消失。

    在这里输入图像描述

    这里是来自发行版文档的另一个信息图,显示Setuptools和easy_install将被新的hotness-distribute和pip所取代。 虽然pip仍然是新的热点,但2013年,随着Setuptools v0.7的发布,Distribute与Setuptools合并。

    在这里输入图像描述

    链接地址: http://www.djcxy.com/p/4471.html

    上一篇: Why use pip over easy

    下一篇: error: Unable to find vcvarsall.bat