"brew install" 和 "pip install" 有区别吗?

Is there a difference between "brew install" and "pip install"?

我想在 Mac 上安装枕头。我有 python 2.7python 3.4,它们都是用 Homebrew 安装的。我尝试了 brew install pillow,它工作正常,但仅适用于 python 2.7。我还没有找到为 python 3 安装它的方法。我试过 brew install pillow3 但没有成功。我在 SO 上找到了一个 post,它说首先使用 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 的枕头没有公式?

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

好吧,OSX 的软件包可能包含 python 的软件包。

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

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-installed 与 brew-installed python 包之间的区别感到困惑。

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

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

Formula are installed with Python 2 support by default. For simultaneous Python 3 support, use brew install <formula> --with-python3. If you don't need Python 2.x support at all, you can pass --with-python3 --without-python.

所以尝试

brew install pillow --with-python3

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

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