簡體   English   中英

安裝Homebrew Python后Python包在錯誤的位置?

[英]Python packages in wrong location after installing Homebrew Python?

在將Homebrew的Python安裝到具有已建立的Apple Python的系統之后, sys.path使用Homebrew的Python列出的最后一個條目是

/Library/Python/2.7/site-packages
/usr/local/lib/python2.7/site-package

這與我期望的順序相反。 不應該先搜索Homebrew的軟件包嗎? (事實上​​, 它不應該唯一搜索到的地方嗎?)這就是文檔中隱含的內容 它在哪里設置,我怎么能(或應該)改變它?

或者,這是Brewed Python的工作方式嗎? 它是否旨在防止重復的軟件包,並假設系統site-packages中的任何軟件包都要保留在那里,除非明確卸載然后安裝(進入Brew); 與外pipsetuptools 復制(在釀造Python的路徑放在第一)。

這是預期的行為。 它背后的基本原理是你可以繼續使用舊的已安裝模塊,盡管你現在正在使用一個新的自制Python。

現在這有一些缺點,例如像numpy這樣的庫不能在不同的Python版本中工作,所以如果你安裝了numpy,它將從舊系統的site-packages導入並且不起作用。

至少有兩種方法可以更改sys.path

使用.pth文件:

Python將從一些內置位置中選擇它(例如:〜/ Library / Python / 2.7 / lib / python / site-packages / homebrew.pth)。 這附加到sys.path ,這不是理想的,但有一個優點,它不會被Python 3選中。它是目前推薦的方法 你可以用:

echo "$(brew --prefix)/lib/python2.7/site-packages" > ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth

設置PYTHONPATH

這得到了sys.path ,它的缺點是對所有python版本都是全局的,所以如果你打算使用不同的python版本,不建議這樣做。 您可以通過添加到.bash_profile來執行此操作:

export PYTHONPATH=`brew --prefix`/lib/python2.7/site-packages:$PYTHONPATH

我個人使用選項2和homebrew-python(我現在使用並推薦Anaconda)。 我的理由是我當時並不關心系統的Python或Python 3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM