为何要使用pip而不是easy_install? [关闭]

推文内容以下: html

不要使用easy_install,除非你喜欢刺伤本身的脸。 使用点子。 python

为何要使用pip而不是easy_install? 问题不在于PyPI和包装做者吗? 若是做者将垃圾源tarball(例如:丢失文件,没有setup.py)上传到PyPI,那么pip和easy_install都将失败。 除了化妆品差别,为何Python人(如上面的推文)彷佛强烈支持pip而不是easy_install? git

(咱们假设咱们正在讨论来自Distribute包的easy_install,这是由社区维护的) ide


#1楼

做为fuzzyman的回复的补充: 工具

pip不会安装二进制包,而且在Windows上没有通过良好测试。 测试

因为Windows默认状况下没有编译器,所以pip一般不能在那里使用。 easy_install能够为Windows安装二进制包。 spa

这是Windows上的一个技巧: code

  • 您可使用easy_install <package>来安装二进制包以免构建二进制文件 htm

  • 即便您使用easy_install,也可使用pip uninstall <package>ip

这只是一个适用于Windows的解决方法。 实际上,若是不涉及二进制文件,我老是使用pip。

查看当前的pip doku: 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而不是egg为PySide建立OS X安装程序来测试wheel 。 将回来并报告此事。

欢呼 - 克里斯

快速更新:

过渡到wheel几乎结束了。 大多数包都是支撑wheel

我答应为PySide制造轮子,去年夏天我就这样作了。 效果很好!

提示:到目前为止,一些开发人员未能支持轮式,只是由于他们忘记用setuptools替换distutils 。 一般,经过在setup.py替换此单个单词,能够轻松转换此类包。


#2楼

更新:正如一些人所想的那样, setuptools吸取了distribute ,而不是相反。 setuptools是最新的distutils更改和轮式格式。 所以, easy_installpip如今或多或少处于平等地位。

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


#3楼

刚刚遇到一个我必须使用easy_install而不是pip特殊状况,或者我必须直接提取源代码。

对于包GitPythonpip的版本太旧,为0.1.7 ,而easy_install是最新的0.3.2.rc1

我正在使用Python 2.7.8 。 我不肯定easy_installpip的底层机制,但至少某些软件包的版本可能彼此不一样,有时easy_install是新版本的版本。

easy_install GitPython

#4楼

这里的许多答案都是2015年的过期(尽管丹尼尔罗斯曼最初接受的答案不是)。 这是现状:

  • 二进制包如今做为轮子( .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+软件包,若是你从source构建,默认包含一个pip引导程序。
  • 有关安装,使用和构建软件包的各类不完整文档已被“ 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包含readline ,方式easy_install知道如何克服但pip没有,因此若是你想升级它,你也想要sudo easy_install readline


#5楼

有两个缘由,可能会有更多:

  1. pip提供了一个uninstall命令

  2. 若是安装在中间失败,则pip将使您处于干净状态。

相关文章
相关标签/搜索