一个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,由社区维护)
这里的许多答案都是过时的2015年(虽然the initially accepted one from Daniel Roseman不是)。下面是当前事物的状态:
.whl
文件),不只是PyPI上,但在第三方仓库一样Christoph Gohlke's Extension Packages for Windows。 pip
可以处理的车轮; easy_install
不能。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
引导默认情况下,如果你从源代码编译包括在内。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
,如果你想升级。
从伊恩Bicking自己introduction to pip:
PIP最初编写为改善的easy_install在以下几个方面
- 安装之前,所有的软件包下载。部分完成的安装不会出现结果。
- 小心地在控制台上提供有用的输出。
- 采取行动的原因,保持轨道。举例来说,如果正在安装一个软件包,PIP跟踪为什么要求包装。
- 错误信息应该是有用的。
- 它的代码比较简洁,凝聚力,使其更容易编程方式使用。
- 软件包没有安装为鸡蛋档案,它们可以被安装平(同时保持蛋的元数据)。
- 对于其他版本控制系统的原生支持(GIT,水银和集市)
- 包卸载。
- 简单的定义固定套的要求,并可靠地重现一组软件包。
另外,作为尚未未尽,理由有利于pip是因为它是新的辣味,并将在未来继续使用。
该信息图表低于从Current State of Packaging-显示,setuptools的在The Hitchhiker's Guide to Packaging v1.0节/ easy_install的会消失在未来。
下面是distribute's documentation表明Setuptools另一个信息图表和easy_install的将新的辣味,distribute和pip所取代。虽然pip仍然是新的辣味,Distribute合并Setuptools在2013年Setuptools V0.7的发布。
有两个原因,可能会有更多:
uninstall
命令要求的文件。
说真的,我结合使用这与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
任何时候,这样是真棒,你可以自动单调乏味。
PIP将不会安装二进制包,而不是在Windows很好的测试。
由于Windows不经常来与编译器默认PIP不能有使用。 easy_install的可用于Windows安装二进制软件包。
UPDATE:setuptools
吸收distribute
,而不是周围的其他方法,如一些思考。 setuptools
高达最新与最新distutils
变化和轮格式。因此,easy_install
和pip
或多或少平等现在。
来源:http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
作为除了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
更换此一字一句地这样的包装转换。
刚见面,我不得不使用,而不是easy_install
pip
一个特殊的情况,否则我必须直接拉源代码。
对于包GitPython
,在pip
版本太旧,这是0.1.7
,而从easy_install
一来是这是0.3.2.rc1
最新的。
我使用Python 2.7.8
。我不知道easy_install
和pip
的底层机制,但至少一些软件包的版本可能是彼此不同的,有时easy_install
是一个较新的版本。
easy_install GitPython