安裝 Python 模組¶
- 電子郵件:
作為一個廣受歡迎的開源開發專案,Python 擁有一個活躍的、由貢獻者和使用者組成的支援社群,他們也以開源許可協議,將其軟體提供給其他 Python 開發者使用。
這使得 Python 使用者可以有效地分享與協作,從他人為常見(有時甚至是罕見!)問題建立的解決方案中受益,並可能將自己的解決方案貢獻到公共資源庫中。
本指南涵蓋了安裝過程。有關建立和分享你自己的 Python 專案的指南,請參閱 Python 打包使用者指南。
備註
對於企業和其他機構使用者,請注意,許多組織對於使用和貢獻開源軟體有自己的政策。在使用 Python 提供的分發和安裝工具時,請考慮這些政策。
關鍵術語¶
pip
是首選的安裝程式。從 Python 3.4 開始,它被預設包含在 Python 的二進位制安裝程式中。虛擬環境 是一個半隔離的 Python 環境,它允許為特定應用程式安裝包,而不是在系統範圍內安裝。
venv
是建立虛擬環境的標準工具,自 Python 3.3 起成為 Python 的一部分。從 Python 3.4 開始,它預設在所有建立的虛擬環境中安裝pip
。virtualenv
是venv
的一個第三方替代品(也是其前身)。它允許在 Python 3.4 之前的版本中使用虛擬環境,這些版本要麼根本不提供venv
,要麼無法在建立的環境中自動安裝pip
。Python 包索引(Python Package Index)是一個公共的開源許可軟體包倉庫,供其他 Python 使用者使用。
Python 打包管理局(Python Packaging Authority)是由開發者和文件作者組成的團體,負責維護和發展標準的打包工具以及相關的元資料和檔案格式標準。他們在 GitHub 上維護著各種工具、文件和問題跟蹤器。
distutils
是最初的構建和分發系統,於 1998 年首次被新增到 Python 標準庫中。雖然直接使用distutils
的方式正逐漸被淘汰,但它仍然為當前的打包和分發基礎設施奠定了基礎,並且它不僅仍然是標準庫的一部分,其名稱也以其他方式延續(例如用於協調 Python 打包標準開發的郵件列表名稱)。
在 3.5 版更改: 現在推薦使用 venv
來建立虛擬環境。
基本用法¶
標準的打包工具都被設計為在命令列中使用。
以下命令將從 Python 包索引(Python Package Index)安裝一個模組的最新版本及其依賴項
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 之前的版本中安裝 pip
?¶
Python 從 3.4 版本開始才捆綁 pip
。對於更早的版本,pip
需要像 Python 打包使用者指南中所述的那樣進行“引導安裝”。
… 僅為當前使用者安裝包?¶
向 python -m pip install
傳遞 --user
選項,將只為當前使用者安裝包,而不是為系統的所有使用者安裝。
… 安裝科學計算相關的 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
檔案形式提供,也可能有助於獲取其他二進位制擴充套件而無需在本地構建它們。