【问题标题】:Is there a difference between "brew install" and "pip install"?“brew install”和“pip install”有区别吗?
【发布时间】:2015-12-08 10:19:48
【问题描述】:

我想在我的 Mac 上安装枕头。我有python 2.7python 3.4,都安装了 Homebrew。我试过brew install pillow,效果很好,但只适用于python 2.7。我一直找不到为python 3 安装它的方法。我试过brew install pillow3 但没有运气。我在 SO 上找到了一个帖子,上面写着首先使用 Homebrew 安装 pip3,然后使用 pip3 install pillow。碰巧我已经安装了pip3

我从来不明白用pip 安装python 包和用Homebrew 安装它之间的区别(如果有的话)。你能给我解释一下吗?此外,如果有可用的公式,是否最好使用 Homebrew 安装?如果用 Homebrew 安装确实更可取,你知道如何用 Homebrew 安装pillow for python 3 吗?

第一个答案表明我没有说清楚。如果我用pip install pillow 而不是brew install pillow 安装了枕头,我的系统上的安装会有什么不同吗?为什么 Homebrew 会做出一个公式来做 pip 已经做的事情?它会检查其他先决条件吗?为什么有python2 的枕头公式,但据我所知pillowpython3 却没有?

【问题讨论】:

  • brewOSX 安装包,pipPython 安装包。
  • 尝试 brew update 命令
  • @tzaman 谢谢,但是为什么brew install pillow 起作用了?我确信我也用 brew 安装了其他 python 包。 (当然,我可能会产生幻觉。)
  • @Catmandu 谢谢,但没用。
  • 这是一个涵盖 brew 和 pip 之间建议关系的文档:docs.brew.sh/Homebrew-and-Python.html

标签: python macos pip homebrew


【解决方案1】:

Homebrew 是一个包管理器,类似于 ubuntu 上的 apt 或其他一些 linux 发行版上的 yum。 Pip 也是一个包管理器,但特定于 python 包。 Homebrew 可用于安装各种东西,例如 MySQL 和 mongodb 等数据库或 apache 或 nginx 等网络服务器。

【讨论】:

  • 谢谢。我的意思是,如果我可以使用brew install pillowpip install pillow 安装软件包,最终结果会有所不同吗?如果是这样,一种方法比另一种更好吗?我将尝试编辑我的问题以使我的意思更清楚。
  • pip install pillow 应该将包放在您的 PYTHONPATH 中,而如果您使用 brew 安装它,除非您已将适当的目录添加到您的 PYTHONPATH 中,否则 python 将无法从它。如果您要安装 python 模块,请务必使用pip
  • 这就是我需要知道的。谢谢。
【解决方案2】:

好吧,OSX 的包可能包括 python 的包。

pip 是 python 世界的打包器——你应该只能用它安装 python-things; homebrew 是针对 OSX 的包管理器;它不会对您可以安装的软件施加任何限制 - 因为 pythonsoftware 的子集。

使用brew 安装东西会将它们安装到/usr/local/

使用pip 安装东西将从Python Package Index 获取包,并将它们安装在python 解释器可以找到它们的位置:或者到你的主目录(例如~/.local/lib/python2.7/site-packages/)或在一些全局搜索中- 你的python解释器的路径(例如/usr/local/lib/python2.7/dist-packages/

如果您通过brew 安装了python 解释器,那么通过brew 安装的任何python 包都可以开箱即用。

【讨论】:

  • 它看起来像 pip install pillow 把它放在 /Library/Python/2.7/site-packages/PIL 我认为是 Mac 上预装的 python,但 pip3 install pillow 把它放在 / usr/local/lib/python3.4/site-packages/PIL.
  • @saulspatz 使用 Homebrew 提供的最新 Python,pip install pillow 应将其安装在 $(brew --prefix)/lib/python2.7/site-packages 而不是 Apple Python 中。见brew info python
【解决方案3】:

我也对pip-installed 与brew-installed python 包之间的区别感到困惑。

我的理解是 pip-installed 包不是为您的特定系统编译的。它从Python Package Index 获取包,然后在您的计算机中编译和构建它。通过 homebrew 安装的 Python 包已经为您的特定系统 (Macos) 构建和编译。他们都应该工作。但我不确定从这两种方式安装的软件包是否会放在同一个位置。

关于通过homebrew 安装pillow 的问题,我相信您应该已经完成​​brew tap homebrew/python,因为这就是您可以从homebrew 安装python 包的方法。在这个github page 他们声称

Formula 安装时默认支持Python 2。要同时支持Python 3,请使用brew install <formula> --with-python3。如果你根本不需要Python 2.x支持,你可以通过--with-python3--without-python

那就试试吧

brew install pillow --with-python3

brew install pillow --with-python3 --without-python

如果您只想为python3 安装pillow。如果homebrew 警告您pillow 已安装,您可能需要先执行brew uninstall pillow

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多