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

Yocto Bitbake报错无法继承classes/pypi.bbclass,求树莓派镜像构建方案

解决Yocto Rocko分支中classes/pypi.bbclass找不到的问题

这个问题我在调试Yocto Rocko分支时碰到过,核心原因是meta-raspberrypi依赖的meta-python层没有被正确添加到构建配置中,或者你克隆的层版本和Rocko分支不兼容,下面是具体的解决步骤:

1. 检查并修正bblayers.conf的层配置

pypi.bbclass是meta-openembedded下meta-python层的文件,你的构建环境没有加载这个层才会报错。

  • 先进入构建目录(执行source oe-init-build-env后默认在poky/build目录),打开层配置文件:
    nano build/conf/bblayers.conf
    
  • 确保文件中包含以下必要的层,注意路径要匹配你的目录结构(你的meta-raspberrypi和meta-openembedded都在poky目录下):
    BBLAYERS ?= " \
      ${TOPDIR}/../meta \
      ${TOPDIR}/../meta-poky \
      ${TOPDIR}/../meta-yocto-bsp \
      ${TOPDIR}/../meta-openembedded/meta-oe \
      ${TOPDIR}/../meta-openembedded/meta-python \
      ${TOPDIR}/../meta-raspberrypi \
      "
    
    这里${TOPDIR}指向当前的build目录,../会回到poky根目录,刚好对应你的层位置。

2. 确保所有层的分支与Rocko匹配

Yocto不同分支的层不能混用,如果你克隆的meta-raspberrypi和meta-openembedded是默认的master分支,就会出现依赖不兼容的问题:

  • 切换到Rocko分支:
    cd ~/Yocto/poky/meta-raspberrypi
    git checkout rocko
    cd ../meta-openembedded
    git checkout rocko
    

3. 重新初始化构建环境

退出当前终端(避免环境变量残留),重新打开一个终端窗口,执行:

cd ~/Yocto/poky
source oe-init-build-env

此时应该不会再出现Could not inherit file classes/pypi.bbclass的错误了。

额外注意点

  • Rocko是Yocto 2.4版本,属于比较老的分支,对应的meta-raspberrypi主要支持树莓派2/3等型号,后续构建镜像时如果遇到其他问题,可以优先检查层的版本兼容性。
  • meta-raspberrypi还依赖meta-openembedded下的meta-multimedia等层,如果后续构建特定镜像需要,可以继续添加到bblayers.conf中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:07