代码之家  ›  专栏  ›  技术社区  ›  Sridhar Ratnakumar

为什么使用pip而不是easy\u安装[[关闭]

  •  909
  • Sridhar Ratnakumar  · 技术社区  · 16 年前

    A tweet 内容如下:

    不要使用简易安装,除非 就像捅自己的脸。 使用pip。

    为什么使用pip而不是easy\u安装?不是吗 fault lie with PyPI and package authors mostly ? 如果作者将垃圾源tarball(例如:missing files,no setup.py)上传到PyPI,那么pip和easy\u安装都将失败。除了表面上的差异,为什么Python人(就像上面的tweet)看起来 强烈地 喜欢pip而不是简单的安装?

    9 回复  |  直到 12 年前
        1
  •  313
  •   Community Mohan Dere    9 年前

    这里的许多答案在2015年已经过时(尽管 the initially accepted one from Daniel Roseman 不是)。以下是当前情况:

    • 二进制软件包现在以轮子的形式分发( .whl 文件)不仅在PyPI上,而且在第三方存储库中,比如 Christoph Gohlke's Extension Packages for Windows pip 可操纵车轮; easy_install 不能。
    • 虚拟环境(3.4内置,也可以通过 virtualenv the official docs ); 它们包括 开箱即用,但不能正常工作 易于安装 .
    • 这个 distribute 包含的包 不再维护。它的改进超过了 setuptools 设置工具 分配 设置工具 相反。
    • 皮普 以前不如 从一个未打包的源代码树安装,从一个DVCS repo等都早已不见了;你可以 pip install . pip install git+https://
    • 皮普 带有Python.org的官方Python 2.7和3.4+包,以及 皮普 如果从源代码生成,则默认情况下包括引导。
    • Python Packaging User Guide Installing Python Modules 现在遵循本用户指南,并显式调用 作为“首选安装程序”。
    • 其他新功能已添加到 易于安装 . 例如, 通过构建一个需求文件,然后在每侧使用一个命令安装它,可以很容易地克隆站点包。或者将您的需求文件转换为本地回购协议以用于内部开发。等等。

    易于安装 2015年的特例是使用苹果预装的Python版本和osx10.5-10.8。从10.5开始,苹果公司就把 易于安装 皮普 . 对于10.9+,您仍然应该使用 get-pip.py sudo easy_install pip . (一般来说, easy_install pip 是个坏主意;只有在OSX10.5-10.8中才需要这样做。)另外,10.5-10.8包括 readline 在某种程度上 易于安装 知道怎么混日子但是 不,所以你也想 sudo easy_install readline

        2
  •  600
  •   Community Mohan Dere    6 年前

    伊恩·比金自己的 introduction to pip :

    • 注意在控制台上显示有用的输出。
    • 对采取行动的原因进行跟踪。例如,如果正在安装一个包,pip会跟踪为什么需要这个包。
    • 包不必作为egg归档文件安装,它们可以平放安装(同时保留egg元数据)。
    • 对其他版本控制系统(Git、Mercurial和Bazaar)的本机支持
    • 卸载程序包。
    • 易于定义固定的需求集并可靠地复制一组包。
        3
  •  247
  •   Nick T twasbrillig    7 年前

    pip 是因为它是新的热点,未来还会继续使用。

    下面的信息图表来自 Current State of Packaging The Hitchhiker's Guide to Packaging v1.0 显示setuptools/easy\u安装将在将来消失。

    enter image description here

    这是另一张来自 distribute's documentation Setuptools distribute 皮普 . 而 仍然是新的热点, Distribute 与…合并 设置工具 2013年发布 设置工具 第0.7版。

    enter image description here

        4
  •  171
  •   Ned Batchelder    16 年前

    1. pip提供了 uninstall 命令

    2. 如果安装中途失败,pip将使您处于干净状态。

        5
  •  115
  •   Matthew Schinckel    8 年前

    需求文件。

    说真的,我每天都和virtualenv一起使用。


    需求文件允许您创建通过pip安装的所有包的快照。通过将这些包封装在virtualenvironment中,您可以让您的代码库脱离一组非常特定的包,并与其他人共享该代码库。

    来自Heroku的文件 https://devcenter.heroku.com/articles/python

    virtualenv env
    source env/bin/activate
    

    pip install flask
    

    现在,您可以转储与一起安装的软件包的信息

    pip freeze > requirements.txt
    

    如果您将该文件签入版本控制,当其他人收到您的代码时,他们可以设置自己的虚拟环境并安装所有依赖项:

    pip install -r requirements.txt
    

    任何时候你都可以像这样自动化乏味的工作,真是太棒了。

        6
  •  82
  •   fuzzyman    16 年前

    pip不会安装二进制软件包,在Windows上也没有经过很好的测试。

    不能 可以 安装适用于Windows的二进制软件包。

        7
  •  76
  •   user3341691    12 年前

    更新: setuptools 已吸收 distribute 设置工具 是最新的 distutils 更改和控制盘格式。因此, easy_install pip

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

        8
  •  25
  •   Christian Tismer    11 年前

    作为对fuzzyman回答的补充:

    由于Windows在默认情况下没有编译器,pip通常不能使用

    下面是Windows的一个技巧:

    • easy_install <package> 安装二进制软件包以避免生成二进制文件

    • 你可以用 pip uninstall <package> 即使你使用简易安装。

    实际上,如果不涉及二进制文件,我总是使用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/

    我会测试的 PySide 使用 而不是鸡蛋。我会回来报告的。

    干杯-克里斯

    快速更新:

    过渡到 .

    我答应给你造轮子 去年夏天我就这么做了。工作太好了!

    提示: 一些开发人员到目前为止还没有支持wheel格式,仅仅是因为他们忘记了支持wheel格式 distutils 通过 setuptools . 通常,通过替换中的这个单词来转换这样的包是很容易的 setup.py

        9
  •  3
  •   Landys    11 年前

    刚刚遇到一个我必须使用的特殊情况 easy_install 而不是 pip ,否则我必须直接提取源代码。

    GitPython ,中的版本 皮普 0.1.7 ,而 是最新的 0.3.2.rc1 .

    我在用 Python 2.7.8 . 我不太清楚 易于安装 皮普 ,但至少某些软件包的版本可能彼此不同,有时 易于安装 是更新版本的。

    easy_install GitPython