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 或实现约束的依赖项) 仍然会匹配过度约束的下载需求。如果您的某些依赖项不可用为二进制文件,您可以为目标平台手动构建它们,并让 pip download 知道在哪里使用 --find-links 找到它们。

选项

-c, --constraint <file>

使用给定的约束文件约束版本。此选项可以多次使用。

(环境变量: PIP_CONSTRAINT)

-r, --requirement <file>

从给定的需求文件安装。此选项可以多次使用。

(环境变量: PIP_REQUIREMENT)

--no-deps

不要安装软件包依赖项。

(环境变量: PIP_NO_DEPS, PIP_NO_DEPENDENCIES)

--global-option <options>

要提供给 setup.py 调用的额外全局选项,在 install 或 bdist_wheel 命令之前。

(环境变量: PIP_GLOBAL_OPTION)

--no-binary <format_control>

不要使用二进制包。可以多次提供,每次都添加到现有值中。接受 “:all:” 以禁用所有二进制包,”:none:” 以清空集合 (注意冒号),或一个或多个用逗号分隔的软件包名称 (没有冒号)。请注意,有些软件包很难编译,在使用此选项安装它们时可能会失败。

(环境变量: PIP_NO_BINARY)

--only-binary <format_control>

不要使用源代码包。可以多次提供,每次都添加到现有值中。接受 “: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> 兼容的轮子。默认为运行系统的平台。多次使用此选项以指定目标解释器支持的多个平台。

(环境变量: PIP_PLATFORM)

--python-version <python_version>

用于轮子及“Requires-Python”兼容性检查的 Python 解释器版本。默认为从运行解释器派生的版本。版本可以使用最多三个用点分隔的整数来指定(例如,“3”表示 3.0.0,“3.7”表示 3.7.0 或“3.7.3”)。也可以使用没有点的字符串给出主版本和次版本(例如,“37”表示 3.7.0)。

(环境变量: PIP_PYTHON_VERSION)

--implementation <implementation>

仅使用与 Python 实现 <implementation> 兼容的轮子,例如“pp”、“jy”、“cp”或“ip”。如果未指定,则使用当前解释器实现。使用“py”强制使用与实现无关的轮子。

(环境变量: 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.ac.cn/simple)。这应该指向符合 PEP 503(简单存储库 API)的存储库或以相同格式布局的本地目录。

(环境变量: PIP_INDEX_URL, PIP_PYPI_URL)

--extra-index-url <url>

除了 --index-url 之外,还要使用的包索引的额外 URL。应遵循与 --index-url 相同的规则。

(环境变量: PIP_EXTRA_INDEX_URL)

--no-index

忽略包索引(仅查看 --find-links URL)。

(环境变量: PIP_NO_INDEX)

-f, --find-links <url>

如果为 URL 或指向 html 文件的路径,则解析指向存档的链接,例如 sdist(.tar.gz)或 wheel(.whl)文件。如果为本地路径或 file:// URL,并且该 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. 下载包及其所有依赖项,并使用 OSX 特定解释器约束。这将强制使用 OSX 10.10 或更低版本的兼容性。由于 OSX 依赖项是向前兼容的,因此这也会匹配 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 通用 wheel。

    $ 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