为什么要使用PIP过的easy_install? [关闭]

问题描述 投票:915回答:9

一个tweet写着:

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

为什么要使用PIP过的easy_install?不将fault lie with PyPI and package authors mostly?如果作者上传废话源码包(如:丢失的文件,没有setup.py)到PyPI中,那么这两个点子和easy_install的失败。除了化妆品的差异,为什么Python的人(如上面的鸣叫)似乎强烈支持PIP过的easy_install?

(假设我们正在从分发包谈论的easy_install,由社区维护)

python pip setuptools easy-install pypi
9个回答
297
投票

这里的许多答案都是过时的2015年(虽然the initially accepted one from Daniel Roseman不是)。下面是当前事物的状态:

  • 二进制包现在分布轮(.whl文件),不只是PyPI上,但在第三方仓库一样Christoph Gohlke's Extension Packages for Windowspip可以处理的车轮; easy_install不能。
  • 虚拟环境(这都内置有3.4,或可加入2.6 + / 3.1 +与virtualenv)已经成为一个非常重要和突出工具(在the official docs推荐);它们包括pip开箱即用,但不要即使easy_install正常工作。
  • 所述distribute包,其中包括easy_install不再保持。它改进了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引导默认情况下,如果你从源代码编译包括在内。
  • 文档对安装,使用和建筑包中的各种不完整位已被替换的Python Packaging User Guide。 Python的上Installing Python Modules文档现在推迟到本用户手册,并明确要求了pip为“首选的安装程序”。
  • 其他新功能已被添加到pip多年来,这将永远不会在easy_install。例如,pip可以很容易地通过构建一个需求文件,然后用每边一个命令安装它克隆你的站点包。或转换您的需求文件到本地回购用于内部开发。等等。

唯一的好理由,我知道在2015年使用easy_install是使用苹果的预装的Python版本的OS X 10.5-10.8的特殊情况。由于10.5,苹果已列入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,如果你想升级。


597
投票

从伊恩Bicking自己introduction to pip

PIP最初编写为改善的easy_install在以下几个方面

  • 安装之前,所有的软件包下载。部分完成的安装不会出现结果。
  • 小心地在控制台上提供有用的输出。
  • 采取行动的原因,保持轨道。举例来说,如果正在安装一个软件包,PIP跟踪为什么要求包装。
  • 错误信息应该是有用的。
  • 它的代码比较简洁,凝聚力,使其更容易编程方式使用。
  • 软件包没有安装为鸡蛋档​​案,它们可以被安装平(同时保持蛋的元数据)。
  • 对于其他版本控制系统的原生支持(GIT,水银和集市)
  • 包卸载。
  • 简单的定义固定套的要求,并可靠地重现一组软件包。

247
投票

另外,作为尚未未尽,理由有利于pip是因为它是新的辣味,并将在未来继续使用。

该信息图表低于从Current State of Packaging-显示,setuptools的在The Hitchhiker's Guide to Packaging v1.0节/ easy_install的会消失在未来。

下面是distribute's documentation表明Setuptools另一个信息图表和easy_install的将新的辣味,distributepip所取代。虽然pip仍然是新的辣味,Distribute合并Setuptools在2013年Setuptools V0.7的发布。


171
投票

有两个原因,可能会有更多:

  1. PIP提供uninstall命令
  2. 如果安装在中间失败,PIP将离开你在一个干净的状态。

116
投票

要求的文件。

说真的,我结合使用这与virtualenv中的每一天。


快速依赖管理教程,FOLKS

要求文件允许您创建已通过PIP安装的所有软件包的快照。通过封装在一个虚拟环境的包,你可以有你的代码工作过一组特定的软件包,并与他人分享的代码库。

从Heroku的文档https://devcenter.heroku.com/articles/python

您创建一个虚拟环境,并设置你的shell来使用它。 (bash中/ *尼克斯指令)

virtualenv env
source env/bin/activate

现在有了这个shell中运行的所有Python脚本将利用这个环境的包和配置。现在,你可以在本地安装一个软件包这样的环境,而无需在计算机上安装全球它。

pip install flask

现在,你可以转储哪些软件包安装与资讯

pip freeze > requirements.txt

如果选中该文件版本控制,当别人得到你的代码,他们可以建立自己的虚拟环境,并安装所有的依赖关系:

pip install -r requirements.txt

任何时候,这样是真棒,你可以自动单调乏味。


83
投票

PIP将不会安装二进制包,而不是在Windows很好的测试。

由于Windows不经常来与编译器默认PIP不能有使用。 easy_install的可用于Windows安装二进制软件包。


75
投票

UPDATE:setuptools吸收distribute,而不是周围的其他方法,如一些思考。 setuptools高达最新与最新distutils变化和轮格式。因此,easy_installpip或多或少平等现在。

来源:http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name


25
投票

作为除了fuzzyman的答复:

PIP将不会安装二进制包,而不是在Windows很好的测试。

由于Windows不经常来与编译器默认PIP不能有使用。 easy_install的可用于Windows安装二进制软件包。

下面是在Windows上一招:

  • 您可以使用easy_install <package>安装二进制包,以避免建立二进制
  • 您可以使用pip uninstall <package>即使你使用的easy_install。

这只是一个变通为我的作品在Windows上。其实我一直使用PIP如果没有二进制文件都参与其中。

查看当前PIP数独:http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install

我会问什么是计划的邮件列表上。

下面是最新的更新:

安装二进制文件支持的新方式将是wheel!这还不是标准,但几乎。当前版本仍然是一个alpha:1.0.0a1

https://pypi.python.org/pypi/wheel

http://wheel.readthedocs.org/en/latest/

我将使用wheel代替鸡蛋创造PySide的OS X安装测试wheel。会尽快和有关此报告。

欢呼声,克里斯 -

快速的更新:

wheel过渡已接近尾声。大部分包支持wheel

我承诺建立车轮PySide,和我去年夏天一样。伟大的作品!

提示:一些开发商至今未能支撑轮格式,仅仅是因为他们忘记distutils更换setuptools。通常情况下,很容易通过setup.py更换此一字一句地这样的包装转换。


3
投票

刚见面,我不得不使用,而不是easy_install pip一个特殊的情况,否则我必须直接拉源代码。

对于包GitPython,在pip版本太旧,这是0.1.7,而从easy_install一来是这是0.3.2.rc1最新的。

我使用Python 2.7.8。我不知道easy_installpip的底层机制,但至少一些软件包的版本可能是彼此不同的,有时easy_install是一个较新的版本。

easy_install GitPython
© www.soinside.com 2019 - 2024. All rights reserved.