什么是manylinux?
·
Why Python packaging can be hard
在您的开发生涯中,您可能需要编写一个使用 C 或 C++ 扩展 Python 的包。在这种情况下,您的 Python 包需要经过编译过程,将 C 或 C++ 转换为适用于特定目标系统的二进制文件。当您考虑有多少种 Linux 风格和版本时,这变得非常乏味。为 Red Hat、SUSE、Ubuntu 等构建单独的二进制文件......哎呀好累。
Why Python packaging can be easy w/ manylinux
幸运的是,有一个解决方案。manylinux的诞生是为了让您的 Python 包更容易与大多数 Linux 变体兼容。manylinux利用了大多数发行版都注意向后兼容性这一事实,并有意在旧版本的发行版上构建 bdist 轮子。这个想法是,如果我们在旧的受支持版本上构建,则生成的二进制文件与当前版本兼容。
So what is a manylinux really? Is it a ham sandwich?
不,更好。这是一个 Docker 映像。manylinux是一个Docker映像,它基于 CentOS 操作系统的某些旧版本构建,它与默认情况下假定存在于几乎所有 Linux 系统上的库捆绑在一起。
您可以在 pandas 项目中找到许多 Linux 发行版的示例。以下是 PyPI 提供的 pandas 下载列表中的两个(其中两个):
pandas-1.0.3-cp37-cp37m-manylinux1_x86_64.whl
pandas-1.0.3-cp37-cp37m-manylinux1_i686.whl
进入全屏模式 退出全屏模式
在这种情况下,pandas 为支持 x86-64 和 i686 架构的 CPython 3.7 构建了许多 Linux 轮子。它是 manylinux,所以这个轮子应该兼容许多 linux :)
快乐的包装!
更多推荐




所有评论(0)