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_SRCPIP_SOURCEPIP_SOURCE_DIRPIP_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_URLPIP_PYPI_URL)

--extra-index-url <url>

額外套件索引的 URL,可使用在 --index-url 之外。應符合與 --index-url 相同的規則。

(環境變數:PIP_EXTRA_INDEX_URL)

--no-index

忽略套件索引(僅查看 --find-links 的 URL)。

(環境變數:PIP_NO_INDEX)

-f, --find-links <url>

如果 URL 或路徑是指向 html 檔案,則解析以尋找指向檔案(例如 sdist (.tar.gz) 或輪子檔 (.whl))的連結。如果本地路徑或 file:// URL 是目錄,則在目錄清單中尋找檔案。不支援指向 VCS 專案 URL 的連結。

(環境變數:PIP_FIND_LINKS)

範例

  1. 下載套件及其所有相依套件

    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
    
  2. 使用 OS X 特定詮譯器限制下載套件及其所有依賴項。此項操作會強制使用與 OS X 10.10 以下相容的設定。由於 OS X 依賴項具備前向相容性,這項操作也會配對 macosx_10_9_x86_64macosx_10_8_x86_64macosx_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
    
  3. 使用 Linux 特定限制下載套件及其依賴項。強制詮譯器為 py3k 任何次要版本,並僅接受 cp34mnone 作為 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
    
  4. 強制平台、實作和 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
    
  5. 即使設定過於嚴格,此項操作仍會正確提取 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
    
  6. 下載支援多個 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