如何在树莓派4的Yocto项目中安装Pygame并解决自定义层报错
解决Yocto添加自定义Pygame层时的
conf/layer.conf缺失报错 一、报错原因
bitbake add-layer要求目标目录必须是合规的Yocto层,你当前只编写了Pygame的配方文件,没有搭建层的必要目录结构(尤其是核心配置文件conf/layer.conf),因此命令直接报错。
二、搭建合法自定义层的步骤
创建层的目录结构
假设你将层命名为meta-pygame,执行以下命令生成目录:mkdir -p meta-pygame/conf mkdir -p meta-pygame/recipes-devtools/python将你编写的Pygame配方文件重命名为
python3-pygame_2.1.2.bb,放入meta-pygame/recipes-devtools/python目录中。生成
conf/layer.conf文件
在meta-pygame/conf目录下新建layer.conf,内容如下:# 将当前层的conf和classes目录加入BBPATH BBPATH .= ":${LAYERDIR}" # 将当前层的配方文件加入BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "meta-pygame" BBFILE_PATTERN_meta-pygame = "^${LAYERDIR}/" BBFILE_PRIORITY_meta-pygame = "6"BBFILE_PRIORITY可自行调整,只要不低于现有层的优先级即可(比如meta-python优先级通常为5,设6没问题)。将层添加到bblayers.conf
执行命令添加层:bitbake-layers add-layer ./meta-pygame或者手动修改
bblayers.conf,新增一行:<PATH>/meta-pygame \
三、修复Pygame配方的依赖问题
你当前的配方缺少必要依赖,Pygame依赖SDL系列库和Python核心模块,需补充如下内容:
SUMMARY = "Python Game Development" HOMEPAGE = "https://www.pygame.org" AUTHOR = "A community project. <pygame@pygame.org>" LICENSE = "LGPL-2.0" LIC_FILES_CHKSUM = "file://setup.py;md5=59f9a291287e87473bbb98f2c9291c5c" SRC_URI = "https://files.pythonhosted.org/packages/9a/50/67767e5586a45e7e7b02e6f0e07853f8fcb81b54c66db6278f1a1344491f/pygame-2.1.2.tar.gz" SRC_URI[md5sum] = "8467a125e9075fa701f082806d228366" SRC_URI[sha256sum] = "d6d0eca28f886f0477cd0721ac688189155a587f2bb8eae740e52ca56c3ad23c" S = "${WORKDIR}/pygame-2.1.2" # 编译阶段依赖 DEPENDS = "sdl2 sdl2-image sdl2-mixer sdl2-ttf sdl2-gfx python3-setuptools-native" # 运行阶段依赖 RDEPENDS_${PN} = "python3-core python3-cmath python3-ctypes python3-io python3-os python3-sys \ sdl2 sdl2-image sdl2-mixer sdl2-ttf sdl2-gfx" inherit setuptools3
这些SDL相关配方在你已添加的meta-oe层中均已存在,无需额外添加层。
四、将Pygame安装到镜像
修改local.conf,添加一行:
IMAGE_INSTALL:append = " python3-pygame"
随后重新编译镜像:
bitbake core-image-base # 替换为你实际使用的镜像名称
内容的提问来源于stack exchange,提问作者Alexander Jönsson
相关产品推荐
相关产品推荐

