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

llew8vvj  于 2023-02-21  发布在  Python
关注(0)|答案(2)|浏览(409)

我面对的Docker构建过程相当缓慢,部分原因是我们要一遍又一遍地构建和安装Python包,我非常希望加快它。
我已经从PyPI下载了这些软件包,这样我就可以好好看看它们了,我还把它们放在了本地的pypiserver(实际上是两个),并确认我可以从那里安装它们。
软件包的扩展名为:

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

我在想,如果我把其中一些. tar.gz(还有. zip和. whl源码)转换成多个linux wheel,并把它们放在一个本地pypiserver示例中,使用相同的版本号,安装起来会快得多。事实上,一个包往往会随机编译失败--所以如果这样做的话,构建过程也会更可靠一些。
有没有一个(相对来说)简单的过程来做这件事?也就是说,从pypi中获取一个. tar.gz(* 不是 * 任意的. tar.gz--只有少量来自pypi),并将其转换为二进制manylinux.whl?
例如,在我们的docker构建中,可能最耗时的包是https://pypi.org/project/pycapnp/,在我的Linux Mint 19. 1笔记本电脑上构建和安装大约需要80秒,它是一个. tar. gz。
谢谢!

fnx2tebb

fnx2tebb1#

方法是下载源发行版(.tar.gz)并将其提取到兼容的manylinux Docker image中(这取决于您想要的目标架构),然后使用python setup.py bdist_wheel构建wheel。
https://github.com/pypa/python-manylinux-demo上有一个演示项目,它展示了如何使用CI自动完成这一操作,您可能会对其进行调整,甚至将其贡献给未发布构建发行版(wheels)的项目。

nkcskrwz

nkcskrwz2#

我相信使用pip wheel应该非常简单

相关问题