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

Ubuntu虚拟机交叉编译树莓派Python转C代码报错求助

解决树莓派RPi3 B+交叉编译Python相关C代码的问题

我之前也碰到过类似的交叉编译Python依赖代码到树莓派的坑,你遇到的Python.h和pyconfig.h找不到的问题,核心原因是你用了Ubuntu主机(x86架构)的Python头文件,而树莓派是ARM架构,两者的头文件(尤其是pyconfig.h,它是针对特定架构生成的)完全不兼容。下面给你几个可行的解决方案,按省心程度排序:

方案一:用Docker直接在ARM兼容环境编译(最推荐)

这个方法完全规避交叉编译的头文件适配问题,因为Docker镜像直接模拟了树莓派的ARM环境:

  • 先确保你的Ubuntu虚拟机安装了Docker
  • 拉取适配树莓派3的Python镜像:
    docker pull arm32v7/python:3.5-slim
    
  • 将你的代码目录挂载到容器中,直接在容器内编译:
    docker run -v $(pwd):/app -w /app arm32v7/python:3.5-slim bash -c "apt-get update && apt-get install -y gcc && gcc -I/usr/include/python3.5m -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -o test test.c"
    
    编译完成后,当前目录下的test就是可以直接在树莓派上运行的可执行文件。

方案二:使用树莓派官方交叉工具链+拷贝树莓派原生头文件

如果不想用Docker,可以手动配置交叉编译环境,关键是要拿到树莓派原生的Python头文件和库:

  1. 安装树莓派官方的ARM交叉编译工具链:
    git clone https://github.com/raspberrypi/tools.git ~/rpi-tools
    export PATH=$PATH:~/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
    
  2. 从你的树莓派上拷贝ARM架构的Python头文件和配置文件(假设树莓派IP是192.168.1.100,用户名为pi):
    # 拷贝Python头文件目录
    scp -r pi@192.168.1.100:/usr/include/python3.5m/ ~/rpi-python-include/
    # 拷贝Python配置目录(包含pyconfig.h)
    scp -r pi@192.168.1.100:/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf/ ~/rpi-python-config/
    
  3. 使用交叉工具链编译,指定树莓派的头文件和库路径:
    arm-linux-gnueabihf-gcc -I~/rpi-python-include/ -I~/rpi-python-config/ -L~/rpi-python-config/ -lpython3.5m -o test test.c
    

方案三:适配Cython的交叉编译流程

如果你想继续用Cython转C的流程,只需要把生成的C代码用上面的交叉工具链编译即可:

  1. 先在Ubuntu主机上用Cython生成C代码:
    cython --embed your_script.py -o your_script.c
    
  2. 然后用方案二中的交叉工具链和树莓派头文件编译:
    arm-linux-gnueabihf-gcc -I~/rpi-python-include/ -I~/rpi-python-config/ -L~/rpi-python-config/ -lpython3.5m -o your_script your_script.c
    

为什么之前的方法失败?

你之前用-I/usr/include/python3.5指定的是Ubuntu主机x86架构的Python头文件,其中的pyconfig.h包含了x86特有的编译宏和路径,完全不适用于ARM架构的树莓派,所以即使你找到了文件,后续也会出现大量编译错误。必须使用树莓派原生的ARM版本头文件才能正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:12:36