Pip 安装和平台特定的轮子
Pip install and platform specific wheels
pip install
select轮子如何安装?
假设我为不同的平台构建了多个 wheel,上传到 PyPI 后 pip install <package>
会自动安装与平台匹配的正确 wheel 吗?
如果我构建了一个 Linux 特定的轮子 仅 并上传到 PyPI,Windows/Mac 上的某个人试图通过 运行 pip install <package>
?
画中画遵循PEP 425 Use recommendations;这规定了二进制分配轮是如何 selected.
具体来说,pip install
只会考虑 兼容 的车轮。将不会下载与不同平台兼容的轮子。
如果没有兼容的轮子,但有源代码分发,则在本地下载并编译该源代码分发。如果没有兼容的轮子,也没有源分发,安装失败。
轮子也可以为 纯 python 项目构建,此时它们不再是平台特定的;这些被称为 通用 轮子。如果项目使用 optional 二进制组件,他们可以选择生成特定于平台的轮子(包括特定于 Python ABI 版本和平台的已编译二进制组件)和通用的wheel 排除了可选的编译组件。如果当前平台没有可用的兼容二进制版本,则安装程序可以 select 通用版本。然而,这并不是那么常见,因为万向轮比源代码分发更受青睐!
pip install
select轮子如何安装?
假设我为不同的平台构建了多个 wheel,上传到 PyPI 后 pip install <package>
会自动安装与平台匹配的正确 wheel 吗?
如果我构建了一个 Linux 特定的轮子 仅 并上传到 PyPI,Windows/Mac 上的某个人试图通过 运行 pip install <package>
?
画中画遵循PEP 425 Use recommendations;这规定了二进制分配轮是如何 selected.
具体来说,pip install
只会考虑 兼容 的车轮。将不会下载与不同平台兼容的轮子。
如果没有兼容的轮子,但有源代码分发,则在本地下载并编译该源代码分发。如果没有兼容的轮子,也没有源分发,安装失败。
轮子也可以为 纯 python 项目构建,此时它们不再是平台特定的;这些被称为 通用 轮子。如果项目使用 optional 二进制组件,他们可以选择生成特定于平台的轮子(包括特定于 Python ABI 版本和平台的已编译二进制组件)和通用的wheel 排除了可选的编译组件。如果当前平台没有可用的兼容二进制版本,则安装程序可以 select 通用版本。然而,这并不是那么常见,因为万向轮比源代码分发更受青睐!