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 安裝進行全域性安裝(此選項在啟用的虛擬環境中不允許使用)。
預設情況下,會安裝 pipX
和 pipX.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 指定一個備用的根目錄,安裝將相對於該目錄進行。如果 root 為
None
,則安裝使用當前環境的預設安裝位置。upgrade 指示是否將現有的舊版本
pip
升級到可用版本。user 指示是否使用使用者方案而不是全域性安裝。
預設情況下,會安裝
pipX
和pipX.Y
指令碼(其中 X.Y 代表當前 Python 版本)。如果設定了 altinstall,那麼
pipX
將*不會*被安裝。如果設定了 default_pip,那麼除了兩個常規指令碼外,還會安裝
pip
。同時設定 altinstall 和 default_pip 將會引發
ValueError
。verbosity 控制引導操作輸出到
sys.stdout
的詳細程度。引發一個附帶引數
root
的 審計事件ensurepip.bootstrap
。備註
引導過程對
sys.path
和os.environ
都有副作用。在子程序中呼叫命令列介面可以避免這些副作用。備註
引導過程可能會安裝
pip
所需的其他模組,但其他軟體不應假設這些依賴項會一直預設存在(因為這些依賴項可能會在未來版本的pip
中被移除)。