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
)
示例¶
下载包及其所有依赖项
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
下载包及其所有依赖项,并使用 OSX 特定解释器约束。这将强制使用 OSX 10.10 或更低版本的兼容性。由于 OSX 依赖项是向前兼容的,因此这也会匹配
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 通用 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
- 下载支持多个 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