You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于X86 Jenkins流水线,如何为ARM架构构建Python分发包?

能否通过setup.py配置构建ARM架构Python包?

仅靠修改setup.py的额外配置,无法直接在X86架构机器上构建ARM架构的Python包——因为bdist_wheel生成的包架构属性依赖于构建时的运行环境,X86机器默认会产出适配X86的wheel包。

要在X86的Jenkins流水线里构建ARM架构包,可行的方案包括:

  • 使用ARM架构的构建环境:通过Docker运行ARM架构的镜像(比如arm64版本的Ubuntu/CentOS),在容器内执行python setup.py sdist bdist_wheel。这种方式下setup.py无需额外修改,构建环境本身就是ARM,产出的包自然适配ARM。
  • 配置交叉编译工具链:在X86机器上搭建ARM交叉编译环境,构建时通过--plat-name参数指定ARM平台标签,比如:
    python setup.py bdist_wheel --plat-name manylinux_2_17_aarch64
    
    注意:必须确保交叉编译环境配置正确(比如指定ARM的编译器、头文件路径),否则编译出的二进制仍会是X86架构。
  • 借助多架构构建工具:使用cibuildwheel这类工具,它能自动处理跨架构构建逻辑,通过容器或多节点CI环境生成适配ARM的wheel包。集成到Jenkins流水线后,setup.py无需特殊配置,只需按工具要求编写配置文件即可。

额外说明:如果你的包是纯Python实现(无C扩展),那么生成的sdist源码包,或者添加--universal参数生成的通用wheel包(python setup.py bdist_wheel --universal)本身就是跨架构的,无需做任何特殊配置,ARM机器可直接安装使用。

内容的提问来源于stack exchange,提问作者datahack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:55:56