Python

此頁面說明 Homebrew 中如何處理 Python 以供使用者使用。請參閱 Python for Formula Authors,以取得撰寫公式以安裝以 Python 編寫的套件的建議。

Homebrew 將安裝讓您的套件正常運作所需的必要 Python 3 版本。不支援 Python 2(或 1)。

Python 3

Homebrew 提供最新且經過維護的 Python 3 版本公式(python@3.y)(https://devguide.python.org/versions/)。我們會根據 版本化公式準則保留較舊的 python@3.y 版本。

重要:Python 可能隨時升級至較新版本。如果您需要虛擬環境的次要或修補程式版本的穩定性,請考慮使用版本管理員,例如 pyenv

可執行檔組織如下

在此安裝 pythonpython-configpip 等未設定版本的符號連結

$(brew --prefix python)/libexec/bin

警告!可執行檔並不總是指向最新的 Python 3 版本,因為最新 Python 3 版本與 homebrew-core 儲存庫切換到最新版本之間總是有延遲。

Setuptools、pip 等

Python 公式安裝 pip(作為 pip3)。Python@3.11 和較舊的 Python 公式也會安裝 Setuptools

從 Python@3.12 開始,應透過重新安裝已釀造的 Python 來更新已綑綁的 Python 套件。對於較舊的 Python 公式,可按照以下說明進行更新。

可透過 pip 更新 Setuptools,而無需重新安裝已釀造的 Python

python3 -m pip install --upgrade setuptools

類似地,pip 可用於透過以下方式升級自身

python3 -m pip install --upgrade pip

site-packagesPYTHONPATH

site-packages 是包含 Python 模組的目錄,包括由其他公式安裝的繫結。Homebrew 在此建立它

$(brew --prefix)/lib/pythonX.Y/site-packages

因此,對於 Python 3.y.z,您可以在 macOS Intel 上的 /usr/local/lib/python3.y/site-packages 中找到它。

Python 3.y 也會在下列位置搜尋模組:

Homebrew 的 site-packages 目錄會在 (1) 安裝任何具有 Python 繫結的 Homebrew 公式時,或 (2) 在 brew install python 時,首次建立。

為什麼會在這裡?

此位置的理由是為了在 Python 的(次要)升級或重新安裝之間保留您的模組。此外,Homebrew 有嚴格的政策,絕不在 brew --prefix 之外寫入任何東西,因此我們不會對您的系統發送垃圾郵件。

Homebrew 提供的 Python 繫結

一些公式提供 Python 繫結。

非 Homebrew Python 繫結的政策

這些應該透過 pip install <package> 安裝。若要發現,您可以使用 https://pypi.org/search

從 Python 3.12 開始,我們強烈建議您為此使用一個單獨的虛擬環境(請參閱下方 PEP 668 的部分)。

Homebrew Python 模組

對於 Homebrew Python,使用 pippython3 setup.py install 安裝的模組將會安裝到 $(brew --prefix)/lib/pythonX.Y/site-packages 目錄(如上所述)。可執行 Python 程式碼將會在 $(brew --prefix)/bin 中。

由於系統 Python 可能不知道在為 Homebrew 安裝的軟體建立繫結時要設定哪些編譯器旗標,您可能需要執行

CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" pip install <package>

PEP 668 (Python@3.12) 和虛擬環境

從 Python@3.12 開始,Homebrew 遵循 PEP 668

如果您想要安裝非 Homebrew 封裝的 Python 套件(例如來自 PyPI),

可以使用 brew install xyz 將一些 Python 套件安裝為公式。我們不建議使用這些公式,而是建議您在虛擬環境中使用 pip 安裝它們。這些系統級的 Homebrew Python 公式通常是 Homebrew 特有的公式,可用作其他 Homebrew 公式的相依性。不建議依賴它們。

為什麼 Homebrew 的 Python 會被安裝為依賴項?

宣告無條件依賴 python 配方的配方會對 Homebrew 的 Python 3.y 進行封裝,並要求安裝它。

Fork me on GitHub