pip wheel
命令用于根据要求和依赖关系构建 Wheel 存档
Wheel 是一种内置包格式,其优点是在每次安装时不需要重新编译软件,更多关于 Wheel 归档的详细信息,可以访问 https://wheel.readthedocs.io/en/latest/
范例
为某个需求 ( 及其所有依赖项 ) 构建一个 wheel,然后安装
$ pip wheel --wheel-dir=/tmp/wheelhouse SomePackage $ pip install --no-index --find-links=/tmp/wheelhouse SomePackage
语法
pip wheel
命令的使用语法格式如下
pip [options] <requirement specifier> ... pip [options] -r <requirements file> ... pip [options] [-e] <vcs project url> ... pip [options] [-e] <local project path> ... pip [options] <archive url/path> ...
pip wheel
使用要求: setuptools>=0.8
和 wheel
pip wheel
使用包 wheel
包提供的 bdist_wheel
这个 setuptools
扩展来构建单个 wheel
构建系统接口
为了可以使用 pip 构建一个 wheel,setup.py
必须提供 bdist_wheel
命令,而该命令的使用语法如下
python setup.py bdist_wheel -d TARGET
上面这条语句必须会创建与当前调用的 Python 解释器兼容的 wheel,并将该 wheel 保存在目录 TARGET
中
除了 bdist_wheel
外,pip wheel
命令并不会调用其它构建系统命令
自定义构建
可以在调用 setup.py
文件时提供 --global-option
参数用于包含其它的构建命令,这也是目前从命令行影响构建 C 扩展的唯一方法
例如
pip wheel --global-option bdist_ext --global-option -DFOO wheel
会生成一个如下的命令
setup.py bdist_ext -DFOO bdist_wheel -d TARGET
这会传递预处理符号来扩展构建系统
这种对构建系统的高度定制化,相比于支持的构建接口,也会产生更多可能性的意外情况
选项
-
-w, --wheel-dir <dir>
将构建好的
Wheels
存放到目录<dir>
,默认情况下,使用当前工作目录 -
--no-binary <format_control>
不使用二进制包
该选项可以重复添加,每增加一个就会自增当前的值
可选的值有
all
:禁用所有二进制包none
:清空集合,或者使用逗号之间的一个或多个包名称
注意,某些软件包编译起来很棘手,并且,即使在添加了此选项后仍然可能无法安装
-
--only-binary <format_control>
不使用源代码包
该选项可以重复添加,每增加一个就会自增当前的值
可选的值有
all
:禁用所有源代码包none
:清空集合,或者使用逗号之间的一个或多个包名称
注意,没有二进制发行版的软件包在使用此选项时将无法安装
-
--build-option <options>
可以用于给
setup.py bdist_wheel
添加额外的参数 -
--no-build-isolation
在构建现代的源代码分发包是禁用隔离
如果使用了此选项,则必须已安装
PEP518
规定的构建依赖项 -
-c, --constraint <file>
使用给定的约束文件约束版本,该选项可以重复添加
-
-e, --editable <path/url>
在可编辑模式下 (例如 setuptools 的 「 开发者模式 」 ) 从本地的项目路径或 VCS URL 中安装一个项目
-
-r, --requirement <file>
从给定的需求文件中安装,该选项可以重复添加
按照惯例,需求文件名为
requirements.txt
-
--src <dir>
用于存放迁出的可编辑项目
在虚拟环境中,默认的目录为
<venv path>/src
, 在全局安装中,默认的目录为<current dir>/src
-
--ignore-requires-python
忽略 Requires-Python 信息
-
-b, --build <dir>
用于存放解压缩的包和构建的包
请注意,初始构建仍发生在临时目录中
可以通过适当地设置
TMPDIR
环境变量 ( Windows上的TEMP
) 来控制临时目录的位置注意,如果使用了该参数,当构建发生故障时,并不会清空构建目录
-
--progress-bar <progress_bar>
用于指定要显示的进度条类型,可选项有
on
、ascii
、off
、pretty
、emoji
,默认为on
-
--global-option <options>
在
bdist_wheel
命令之前提供给setup.py
调用的额外全局选项 -
--pre
包含预发布版本和开发版本,默认情况下,只会包行稳定的版本
-
--no-clean
不要清空构建目录
-
--require-hashes
对于可重复安装,需要根据哈希值来检查每个需求
如果需求文件中的任何一项包含了
--hash
选项,则隐式包含此选项 -
-i, --index-url <url>
Python 包索引的基础 URL 地址,默认为 https://pypi.org/simple
该选项的值应该指向符合 PEP503 ( 简单存储库 API ) 的存储库或以相同格式布局的本地目录
-
--extra-index-url <url>
除了
--index-url
之外的附加的 Python 包索引 URL,规则和--index-url
一样 -
--no-index
忽略包索引,之使用
-find-links
指定的 URL -
-f, --find-links <url>
如果提供的 URL 或路径链接到一个 html 文件,则会解析该 html 文件以获取归档
如果是本地目录,或
file://url
指向的是一个目录,那么就在该目录中查找归档 -
--process-dependency-links
启用依赖关系链接的处理