[英]Is there a difference between "brew install" and "pip install"?
我想在我的 Mac 上安裝枕頭。 我有python 2.7
和python 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 安裝適用於python 3
的pillow
嗎?
第一個答案表明我沒有把自己說清楚。 如果我用pip install pillow
而不是brew install pillow
了枕頭,我的系統上的安裝會有什么不同嗎? 為什么 Homebrew 會做出一個公式來做pip
已經做的事情? 它會檢查其他先決條件嗎? 為什么有python2
枕頭的公式,但據我所知沒有python3
pillow
?
好吧,OSX 的包可能包括 python 的包。
pip
是 python 世界的打包器——你應該只能用它安裝 python-things; homebrew
是一個針對 OSX 的包管理器; 它不會對您可以使用它安裝的軟件施加任何限制——因為python是軟件的一個子集。
用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 包都可以開箱即用。
Homebrew 是一個包管理器,類似於 ubuntu 上的apt
或其他一些 linux 發行版上的yum
。 Pip 也是一個包管理器,但特定於 python 包。 Homebrew 可用於安裝各種東西,例如 MySQL 和 mongodb 等數據庫或 apache 或 nginx 等網絡服務器。
pip install pillow
應該將包放在你的PYTHONPATH中,而如果你用brew安裝它,除非你已經將適當的目錄添加到你的PYTHONPATH中,否則python將無法從中導入任何東西。 如果您要安裝 python 模塊,請務必使用pip
我也對pip
-installed 與brew
-installed python 包之間的區別感到困惑。
我的理解是 pip-installed 包不是為您的特定系統編譯的。 它從Python 包索引中獲取包,然后在您的計算機中編譯和構建它。 通過homebrew
安裝的 Python 包已經為您的特定系統 (Macos) 構建和編譯。 他們都應該工作。 但我不確定從這兩種方式安裝的軟件包是否會放在同一個位置。
對於您關於通過homebrew
安裝pillow
的問題,我相信您應該已經完成了brew tap homebrew/python
,因為這就是您可以從homebrew
安裝 python 包的方式。 在這個github 頁面上,他們聲稱
公式默認安裝有
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.