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

你说的曾经没有我的故事 提交于 2019-12-15 15:18:03

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

推文内容如下:

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

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

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


#1楼

作为fuzzyman的回复的补充:

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

由于Windows默认情况下没有编译器,因此pip通常不能在那里使用。 easy_install可以为Windows安装二进制包。

这是Windows上的一个技巧:

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

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

这只是一个适用于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将使您处于干净状态。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!