pip download¶
用法¶
python -m pip download [options] <requirement specifier> [package-index-options] ...
python -m pip download [options] -r <requirements file> [package-index-options] ...
python -m pip download [options] <vcs project url> ...
python -m pip download [options] <local project path> ...
python -m pip download [options] <archive url/path> ...
py -m pip download [options] <requirement specifier> [package-index-options] ...
py -m pip download [options] -r <requirements file> [package-index-options] ...
py -m pip download [options] <vcs project url> ...
py -m pip download [options] <local project path> ...
py -m pip download [options] <archive url/path> ...
描述¶
從下載套件
使用需求規格的 PyPI (和其他索引) 。
VCS 專案 URL 。
本機專案目錄。
本機或遠端原始檔。
pip 也支援從「需求檔案」下載,這是指定要下載整個環境的簡單方法。
概述¶
pip download
會執行與 pip install
相同的解析和下載,但不是安裝相依性套件,而是收集已下載套件到所提供的目錄 (預設為目前目錄)。此目錄稍後可以傳遞為 pip install --find-links
的值,以簡化離線或封鎖的套件安裝。
pip download
搭配 --platform
、--python-version
、--implementation
和 --abi
選項,提供取得與 pip 執行環境不同的直譯器和系統的相依性套件的功能。使用任何這些選項時,需要 --only-binary=:all:
或 --no-deps
。重要的是要注意,這些選項全部預設為目前的系統/直譯器,而不是最嚴格的限制 (例如,平台是任何、ABI 是無等)。若要避免取得碰巧符合目前直譯器限制 (但不是您的目標限制) 的相依性套件,建議在指定其中一個選項時,同時指定所有這些選項。一般相依性套件 (例如通用輪子,或沒有平台、ABI 或執行限制的相依性套件) 仍會符合過度限制的下載需求。如果您的某些相依性套件無法當作二進位檔案取得,您可以手動為您的目標平台建構這些套件,並使用 --find-links
讓 pip download 知道在哪裡找到這些套件。
選項¶
- -c, --constraint <文件>¶
使用所給予的約束文件限制版本。這個選項可以使用多次。
(環境變數:
PIP_CONSTRAINT
)
- -r, --requirement <文件>¶
從所給予的需求文件進行安裝。這個選項可以使用多次。
(環境變數:
PIP_REQUIREMENT
)
- --no-deps¶
不安裝套件依賴項。
(環境變數:
PIP_NO_DEPS
,PIP_NO_DEPENDENCIES
)
- --global-option <選項>¶
在安裝或 bdist_wheel 命令前,提供給 setup.py 呼叫的額外全球選項。
(環境變數:
PIP_GLOBAL_OPTION
)
- --no-binary <格式控制>¶
不使用二進位套件。可以提供多次,每次都會新增至現有的值。接受下列選項:「:all:」來停用所有二進位套件、「:none:」來清空集合(注意冒號),或一個或多個套件名稱,並以逗號分隔(沒有冒號)。請注意,某些套件編譯很棘手,且在套件上使用這個選項時可能會安裝失敗。
(環境變數:
PIP_NO_BINARY
)
- --only-binary <格式控制>¶
不使用原始程式碼套件。可以提供多次,每次都會新增至現有的值。接受下列選項:「:all:」來停用所有原始程式碼套件、「:none:」來清空集合,或一個或多個套件名稱,並以逗號分隔。當使用這個選項時,沒有二進位發行套件的套件將無法安裝。
(環境變數:
PIP_ONLY_BINARY
)
- --prefer-binary¶
偏好使用二進位套件而非原始碼套件,即使原始碼套件較新。
(環境變數:
PIP_PREFER_BINARY
)
- --src <dir>¶
可編輯專案的檢出目錄。在虛擬環境中預設為「<venv 路徑>/src」。針對全域安裝,預設為「<目前目錄>/src」。
(環境變數:
PIP_SRC
、PIP_SOURCE
、PIP_SOURCE_DIR
、PIP_SOURCE_DIRECTORY
)
- --pre¶
包含發行前和開發版本。預設情況下,pip 只會尋找穩定版本。
(環境變數:
PIP_PRE
)
- --require-hashes¶
要求使用雜湊來比對每個需求,以執行可重複的安裝。當需求檔案中的任何套件都有 --hash 選項時,會隱含此選項。
(環境變數:
PIP_REQUIRE_HASHES
)
- --progress-bar <progress_bar>¶
指定是否應使用進度條 [on、off、raw](預設:on)
(環境變數:
PIP_PROGRESS_BAR
)
- --no-build-isolation¶
在建置現代原始碼發行版時停用隔離。如果使用此選項,則 PEP 518 指定的建置相依套件必須已安裝。
(環境變數:
PIP_NO_BUILD_ISOLATION
)
- --use-pep517¶
使用 PEP 517 進行建置原始碼發行版(使用 --no-use-pep517 來強制套用舊有行為)
(環境變數:
PIP_USE_PEP517
)
- --check-build-dependencies¶
在使用 PEP517 時檢查建置依賴項。
(環境變數:
PIP_CHECK_BUILD_DEPENDENCIES
)
- --ignore-requires-python¶
忽略 Requires-Python 資訊。
(環境變數:
PIP_IGNORE_REQUIRES_PYTHON
)
- -d, --dest <dir>¶
下載套件到 <dir> 中。
(環境變數:
PIP_DEST
,PIP_DESTINATION_DIR
,PIP_DESTINATION_DIRECTORY
)
- --platform <platform>¶
僅使用相容於 <platform> 的 wheels。預設為執行系統的平台。多次使用這個選項,以指定目標直譯器所支援的多個平台。
(環境變數:
PIP_PLATFORM
)
- --python-version <python_version>¶
用來進行 wheels 以及「Requires-Python」相容性檢查的 Python 直譯器版本。預設為從執行直譯器衍生的版本。可以使用最多三個以點分隔的整數來指定版本(例如,3 表示 3.0.0,3.7 表示 3.7.0,或 3.7.3 表示 3.7.3)。也可以使用不帶點號的字串,指定主次要版本(例如,37 表示 3.7.0)。
(環境變數:
PIP_PYTHON_VERSION
)
- --implementation <implementation>¶
僅使用相容於 Python 實作 <implementation> 的 wheels,例如「pp」、「jy」、「cp」或「ip」。如果未指定,則使用目前的直譯器實作。使用「py」以強制使用與實作無關的 wheels。
(環境變數:
PIP_IMPLEMENTATION
)
- --abi <abi>¶
僅使用與 Python abi <abi> 相容的輪子,例如「PyPy_41」。如果未指定,則使用目前的翻譯 abi 標籤。使用此選項多次來指定目標翻譯所支援多個 abi。通常在使用這個選項時,您需要指定 --implementation、--platform 和 --python-version。
(環境變數:
PIP_ABI
)
- --no-clean¶
不清除建置目錄。
(環境變數:
PIP_NO_CLEAN
)
- -i, --index-url <url>¶
Python 套件索引的基礎 URL(預設為 https://pypi.org/simple)。這應該會指向符合 PEP 503(簡易儲存庫 API)的儲存庫或以相同格式佈局的本地目錄。
(環境變數:
PIP_INDEX_URL
、PIP_PYPI_URL
)
- --extra-index-url <url>¶
額外套件索引的 URL,可使用在 --index-url 之外。應符合與 --index-url 相同的規則。
(環境變數:
PIP_EXTRA_INDEX_URL
)
- --no-index¶
忽略套件索引(僅查看 --find-links 的 URL)。
(環境變數:
PIP_NO_INDEX
)
範例¶
下載套件及其所有相依套件
python -m pip download SomePackage python -m pip download -d . SomePackage # equivalent to above python -m pip download --no-index --find-links=/tmp/wheelhouse -d /tmp/otherwheelhouse SomePackage
py -m pip download SomePackage py -m pip download -d . SomePackage # equivalent to above py -m pip download --no-index --find-links=/tmp/wheelhouse -d /tmp/otherwheelhouse SomePackage
使用 OS X 特定詮譯器限制下載套件及其所有依賴項。此項操作會強制使用與 OS X 10.10 以下相容的設定。由於 OS X 依賴項具備前向相容性,這項操作也會配對
macosx_10_9_x86_64
、macosx_10_8_x86_64
、macosx_10_8_intel
等設定,以及與any
平台相符的依賴項。此外,強制詮譯器版本為27
(或更通用的2
),並強制執行為cp
(或更通用的py
)。python -m pip download \ --only-binary=:all: \ --platform macosx_10_10_x86_64 \ --python-version 27 \ --implementation cp \ SomePackage
py -m pip download ^ --only-binary=:all: ^ --platform macosx_10_10_x86_64 ^ --python-version 27 ^ --implementation cp ^ SomePackage
使用 Linux 特定限制下載套件及其依賴項。強制詮譯器為 py3k 任何次要版本,並僅接受
cp34m
或none
作為 abi。python -m pip download \ --only-binary=:all: \ --platform linux_x86_64 \ --python-version 3 \ --implementation cp \ --abi cp34m \ SomePackage
py -m pip download ^ --only-binary=:all: ^ --platform linux_x86_64 ^ --python-version 3 ^ --implementation cp ^ --abi cp34m ^ SomePackage
強制平台、實作和 abi 非相依性。
python -m pip download \ --only-binary=:all: \ --platform any \ --python-version 3 \ --implementation py \ --abi none \ SomePackage
py -m pip download ^ --only-binary=:all: ^ --platform any ^ --python-version 3 ^ --implementation py ^ --abi none ^ SomePackage
即使設定過於嚴格,此項操作仍會正確提取 pip 通用輪件。
$ python -m pip download \ --only-binary=:all: \ --platform linux_x86_64 \ --python-version 33 \ --implementation cp \ --abi cp34m \ pip>=8
$ ls pip-8.1.1-py2.py3-none-any.whl pip-8.1.1-py2.py3-none-any.whl
C:\> py -m pip download ^ --only-binary=:all: ^ --platform linux_x86_64 ^ --python-version 33 ^ --implementation cp ^ --abi cp34m ^ pip>=8
C:\> dir pip-8.1.1-py2.py3-none-any.whl pip-8.1.1-py2.py3-none-any.whl
- 下載支援多個 ABI 和平台的套件。
此項操作可於提取支援特定詮譯器的輪件時使用,該詮譯器支援的 ABI 和平台已知或已修復,與 pip 執行的不同。
$ python -m pip download \ --only-binary=:all: \ --platform manylinux1_x86_64 --platform linux_x86_64 --platform any \ --python-version 36 \ --implementation cp \ --abi cp36m --abi cp36 --abi abi3 --abi none \ SomePackage
C:> py -m pip download ^ --only-binary=:all: ^ --platform manylinux1_x86_64 --platform linux_x86_64 --platform any ^ --python-version 36 ^ --implementation cp ^ --abi cp36m --abi cp36 --abi abi3 --abi none ^ SomePackage