将/某人/其他人的/.tar.gz包转换为 .whl?



我面临着一个非常慢的Docker构建过程,部分原因是我们正在一遍又一遍地构建和安装所有Python包。 我非常想加快速度。

我已经从 PyPI 下载了这些软件包,所以我可以好好看看它们。 我还将它们放在本地 pypiserver 中(实际上是两个(,并确认我可以从那里安装它们。

软件包的扩展是:

87 .whl    ............................................................
23 .tar.gz ................
 2 .zip    .

我在想其中一些.tar.gz的(和.zip的? 和来源 .whl 的?如果我将它们转换为 manylinux 轮子,并将它们放在具有相同版本号的本地 pypiserver 实例中,安装速度会快得多。 事实上,一个包往往无法随机编译 - 所以如果这成功,构建过程也应该更可靠一些。

做这样的事情有没有(相对?(简单的过程? 也就是说,从 pypi 中获取一个.tar.gz(不是任意.tar.gz - 只有少数来自 pypi(并将其转换为二进制 manylinux .whl?

例如,在我们的 docker 构建中可能最耗时的软件包是 https://pypi.org/project/pycapnp/在我的 Linux Mint 19.1 笔记本电脑上构建和安装大约需要 80 秒。这是一个.tar.gz。

谢谢!

这样做的方法是在兼容的 manylinux Docker 镜像中下载并提取源代码分发(.tar.gz (,然后使用 python setup.py bdist_wheel 构建轮子。

https://github.com/pypa/python-manylinux-demo 有一个演示项目,展示了如何使用CI自动执行此操作,您可能会对其进行调整,甚至可以将其贡献回未发布构建发行版(轮子(的项目。

我相信它应该非常简单pip wheel

相关内容

  • 没有找到相关文章

最新更新