安裝 Python 模組

電子郵件:

distutils-sig@python.org

作為一個流行的開源開發專案,Python 擁有一個活躍的貢獻者和使用者支援社群,他們也將其軟體以開源許可條款提供給其他 Python 開發人員使用。

這使得 Python 使用者能夠有效地共享和協作,從其他人為常見(有時甚至是罕見!)問題建立的解決方案中受益,並有可能將他們自己的解決方案貢獻給公共池。

本指南涵蓋了流程的安裝部分。有關建立和共享您自己的 Python 專案的指南,請參閱Python 打包使用者指南

注意

對於企業和其他機構使用者,請注意,許多組織在使用和貢獻開源軟體方面都有自己的政策。在使用 Python 提供的發行和安裝工具時,請考慮這些政策。

關鍵術語

  • pip 是首選的安裝程式。從 Python 3.4 開始,它預設包含在 Python 二進位制安裝程式中。

  • 虛擬環境 是一個半隔離的 Python 環境,允許為特定應用程式安裝軟體包,而不是在系統範圍內安裝。

  • venv 是用於建立虛擬環境的標準工具,自 Python 3.3 起就已成為 Python 的一部分。從 Python 3.4 開始,它預設將 pip 安裝到所有建立的虛擬環境中。

  • virtualenvvenv 的第三方替代方案(和前身)。它允許在 3.4 之前的 Python 版本上使用虛擬環境,這些版本要麼根本不提供 venv,要麼無法自動將 pip 安裝到建立的環境中。

  • Python 包索引 是一個公共儲存庫,其中包含可供其他 Python 使用者使用的開源許可軟體包。

  • Python 打包管理局 是一群負責維護和發展標準打包工具以及相關元資料和檔案格式標準的開發人員和文件作者。他們在 GitHub 上維護各種工具、文件和問題跟蹤器。

  • distutils 是最初於 1998 年新增到 Python 標準庫的構建和分發系統。儘管 distutils 的直接使用正在逐步淘汰,但它仍然為當前的打包和分發基礎設施奠定了基礎,它不僅仍然是標準庫的一部分,而且它的名稱還以其他方式保留下來(例如用於協調 Python 打包標準開發的郵件列表的名稱)。

在 3.5 版本中更改: 現在建議使用 venv 來建立虛擬環境。

基本用法

標準打包工具都設計為從命令列使用。

以下命令將從 Python 包索引安裝模組及其依賴項的最新版本

python -m pip install SomePackage

注意

對於 POSIX 使用者(包括 macOS 和 Linux 使用者),本指南中的示例假設使用虛擬環境

對於 Windows 使用者,本指南中的示例假設在安裝 Python 時選擇了調整系統 PATH 環境變數的選項。

也可以直接在命令列上指定確切或最低版本。當使用比較運算子(例如 >< 或其他會被 shell 解釋的特殊字元)時,包名稱和版本應放在雙引號內

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

通常,如果已安裝合適的模組,則嘗試再次安裝它將不會有任何效果。必須明確請求升級現有模組

python -m pip install --upgrade SomePackage

有關 pip 及其功能的更多資訊和資源,請參閱Python 打包使用者指南

虛擬環境的建立是透過 venv 模組完成的。將軟體包安裝到活動的虛擬環境中會使用上面顯示的命令。

我該如何做?

這些是一些常見任務的快速答案或連結。

… 在 Python 3.4 之前的 Python 版本中安裝 pip

Python 僅從 Python 3.4 開始捆綁 pip。對於早期版本,需要按照 Python 打包使用者指南中的說明“引導”pip

… 僅為當前使用者安裝軟體包?

--user 選項傳遞給 python -m pip install 將僅為當前使用者安裝軟體包,而不是為系統的所有使用者安裝。

… 安裝科學 Python 軟體包?

許多科學 Python 軟體包具有複雜的二進位制依賴項,並且目前不容易使用 pip 直接安裝。目前,使用者通常更容易透過其他方式安裝這些軟體包,而不是嘗試使用 pip 安裝它們。

… 並行使用多個已安裝的 Python 版本?

在 Linux、macOS 和其他 POSIX 系統上,將版本化的 Python 命令與 -m 開關結合使用,以執行 pip 的適當副本

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

也可能會提供適當版本化的 pip 命令。

在 Windows 上,將 py Python 啟動器與 -m 開關結合使用

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

常見的安裝問題

在 Linux 上安裝到系統 Python

在 Linux 系統上,通常會將 Python 安裝作為發行版的一部分。安裝到此 Python 安裝需要對系統具有 root 訪問許可權,並且如果使用 pip 意外升級元件,可能會干擾系統包管理器和系統的其他元件的執行。

在此類系統上,在使用 pip 安裝軟體包時,通常最好使用虛擬環境或每個使用者的安裝。

未安裝 Pip

預設情況下,可能不會安裝 pip。一個潛在的修復是

python -m ensurepip --default-pip

還有其他關於安裝 pip 的資源。

安裝二進位制擴充套件

Python 通常嚴重依賴基於原始碼的分發,終端使用者需要將擴充套件模組從原始碼編譯為安裝過程的一部分。

隨著對二進位制 wheel 格式的支援的引入,以及透過 Python 包索引發布至少適用於 Windows 和 macOS 的 wheel 的能力,這個問題預計會隨著時間的推移而減少,因為使用者將能夠更頻繁地安裝預構建的擴充套件,而不是需要自己構建它們。

一些用於安裝尚未作為預構建的 wheel 檔案提供的科學軟體的解決方案,也可能有助於獲取其他二進位制擴充套件,而無需在本地構建它們。