ensurepip --- 引導 pip 安裝程式

在 3.4 版本加入。

原始碼: Lib/ensurepip


ensurepip 包為在現有的 Python 安裝或虛擬環境中引導 pip 安裝程式提供了支援。這種引導方式反映了 pip 是一個有自己釋出週期的獨立專案,其最新可用的穩定版本會與 CPython 參考直譯器的維護和功能版本捆綁在一起。

在大多數情況下,Python 的終端使用者不需要直接呼叫此模組(因為 pip 應該預設被引導安裝),但如果在安裝 Python(或建立虛擬環境)時跳過了 pip 的安裝,或者在明確解除安裝 pip 之後,可能需要使用此模組。

備註

此模組*不*訪問網際網路。引導 pip 所需的所有元件都作為包的內部部分被包含在內。

參見

安裝 Python 模組

安裝 Python 包的終端使用者指南

PEP 453:在 Python 安裝中顯式引導 pip

該模組的最初理由和規範。

可用性: 非 Android、非 iOS、非 WASI。

該模組在移動平臺WebAssembly 平臺上不受支援。

命令列介面

命令列介面透過直譯器的 -m 開關來呼叫。

最簡單的呼叫方式是:

python -m ensurepip

此呼叫將安裝 pip (如果尚未安裝),否則不執行任何操作。要確保已安裝的 pip 版本至少與 ensurepip 中可用的版本一樣新,請傳遞 --upgrade 選項:

python -m ensurepip --upgrade

預設情況下,pip 會被安裝到當前的虛擬環境中(如果已啟用),或者安裝到系統的 site-packages 目錄中(如果沒有啟用的虛擬環境)。安裝位置可以透過兩個額外的命令列選項來控制:

--root <dir>

相對於給定的根目錄安裝 pip,而不是當前活動虛擬環境的根目錄(如果有的話)或當前 Python 安裝的預設根目錄。

--user

pip 安裝到使用者 site-packages 目錄,而不是為當前 Python 安裝進行全域性安裝(此選項在啟用的虛擬環境中不允許使用)。

預設情況下,會安裝 pipXpipX.Y 指令碼(其中 X.Y 代表用於呼叫 ensurepip 的 Python 版本)。所安裝的指令碼可以透過兩個額外的命令列選項來控制:

--altinstall

如果請求了備用安裝,則 pipX 指令碼將*不會*被安裝。

--default-pip

如果請求了“預設 pip”安裝,除了兩個常規指令碼外,還會安裝 pip 指令碼。

同時提供這兩個指令碼選擇選項將引發異常。

模組 API

ensurepip 提供了兩個函式供程式化使用:

ensurepip.version()

返回一個字串,指定在引導環境時將安裝的 pip 的可用版本。

ensurepip.bootstrap(root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)

在當前或指定的環境中引導 pip

root 指定一個備用的根目錄,安裝將相對於該目錄進行。如果 rootNone,則安裝使用當前環境的預設安裝位置。

upgrade 指示是否將現有的舊版本 pip 升級到可用版本。

user 指示是否使用使用者方案而不是全域性安裝。

預設情況下,會安裝 pipXpipX.Y 指令碼(其中 X.Y 代表當前 Python 版本)。

如果設定了 altinstall,那麼 pipX 將*不會*被安裝。

如果設定了 default_pip,那麼除了兩個常規指令碼外,還會安裝 pip

同時設定 altinstalldefault_pip 將會引發 ValueError

verbosity 控制引導操作輸出到 sys.stdout 的詳細程度。

引發一個附帶引數 root審計事件 ensurepip.bootstrap

備註

引導過程對 sys.pathos.environ 都有副作用。在子程序中呼叫命令列介面可以避免這些副作用。

備註

引導過程可能會安裝 pip 所需的其他模組,但其他軟體不應假設這些依賴項會一直預設存在(因為這些依賴項可能會在未來版本的 pip 中被移除)。