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

在树莓派Ubuntu Core上构建依赖Numpy的Snap应用失败求助

解决树莓派Ubuntu Core上Snap打包Numpy的编译错误

我太懂这种ARM架构下打包Python依赖的坑了!你在x86的Ubuntu 16.04/17.10上顺利打包,是因为那些平台有预编译的Numpy wheel包,而树莓派的ARM架构需要源码编译,恰好你缺了编译依赖或者配置没到位,才会出现Running setup.py bdist_wheel for numpy ... error的问题。试试下面这几个解决方案:

1. 补全Numpy编译必需的系统依赖

Numpy源码编译需要编译器和线性代数库支持,在你的snapcraft.yaml对应part的build-packages里加上这些依赖:

parts:
  cavi-device-sdk:
    # 其他配置...
    build-packages:
      - gcc
      - gfortran
      - libblas-dev
      - liblapack-dev
      - python-dev  # 如果用Python3就换成python3-dev

2. 强制pip使用源码编译(跳过wheel构建)

有时候pip默认尝试构建wheel包会在ARM环境下出兼容性问题,你可以在part的override-build里手动指定pip的安装参数,强制源码编译:

parts:
  cavi-device-sdk:
    # 其他配置...
    override-build: |
      pip install --no-binary :all: numpy
      # 这里继续执行你原来的构建命令,比如拷贝文件、安装其他依赖等

3. 明确指定Snap的目标架构

确保你的snapcraft.yaml顶部声明了树莓派对应的ARM架构,避免交叉编译的混乱:

name: cavi-device-snap
version: '1.0'
summary: Your summary here
description: Your description here
architectures:
  - armhf  # 树莓派3/4如果是64位系统就用arm64

4. 试试Snapcraft远程构建

如果本地树莓派的编译资源不足或者环境有隐藏问题,用Snapcraft的远程构建功能,它会在官方的ARM容器里帮你完成编译,命令很简单:

snapcraft remote-build

这些步骤应该能解决你遇到的Numpy编译错误,本质上就是给ARM架构的编译环境补全必要工具,同时避免wheel包的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:54:53