正在将 python 个包分发到离线机器

Distributing python packages to offline machines

假设我有两台机器。

macOS 10.13 with internet connection 
macOS 10.12 with no network connection

我想通过轮子安装 readline(例如)。

我可以轻松抓住方向盘:

pip wheel -w . readline

我得到的是:

readline-6.2.4.1-cp36-cp36m-macosx_10_13_x86_64.whl

然而,当我把这个轮子放在 10.12 机器上并尝试安装它时:

pip install --no-index --find-links . readline

它不会安装,因为文件名带有 10.13 标记。

现在,当然,当联网机器或离线机器处于 运行ning Ubuntu 时,情况可能会变得更复杂一些。

有没有办法向 pip 请求特定目标的特定轮子 OS?

OS OS 上 运行 'pip wheel -w . readline' 的标准处理方式是最终安装它的 OS 吗?

Is the standard way of handling this to run 'pip wheel' on the OS for the OS on which it will ultimately be installed?

是的。为大量架构发布二进制包的人 运行 一组具有大量模拟处理器架构和 OSes 的虚拟机或容器。

对于免费软件,您可以在商业 CI 上使用免费层。在 Travis CI 你可以为 Linux 和 Mac OS X 生成轮子,在 AppVeyor 为 w32.

有关帮助为不同平台构建轮子的程序示例,请参阅 https://pypi.python.org/pypi/cibuildwheel and https://github.com/matthew-brett/multibuild