Yocto Kirkstone添加无setup.py的PyPi包tinydb安装失败求助
解决Yocto Kirkstone中添加tinydb包的镜像安装失败问题
问题根源
你的推测准确:tinydb使用pyproject.toml替代了传统的setup.py,自动生成的配方仅继承了pypi类,缺少处理现代Python包构建的必要逻辑,导致配方虽能单独构建,但未生成可被镜像安装的二进制包(.deb),因此镜像构建时找不到安装候选。
修复步骤
1. 修改BitBake配方
更新你的python3-tinydb_4.8.0.bb配方,补充支持pyproject.toml格式包的必要配置:
# The is automatic generated Code by "makePipRecipes.py" # (build by Robin Sebastian Vers.: 1.2) SUMMARY = "Recipe to embedded the Python PiP Package tinydb" HOMEPAGE ="https://pypi.org/project/tinydb" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=ee9d91e0565d932659cf275d126c7437" PROVIDES = "python3-tinydb" # 明确指定包名,避免依赖解析歧义 PN = "python3-tinydb" # 继承setuptools3以支持pyproject.toml,保留pypi类处理源下载 inherit pypi setuptools3 PYPI_PACKAGE = "tinydb" SRC_URI[md5sum] = "8738999976febfe7e8ea81c4b1910f9b" SRC_URI[sha256sum] = "6dd686a9c5a75dfa9280088fd79a419aefe19cd7f4bd85eba203540ef856d564" # 跳过测试目录安装,避免构建时依赖测试框架 do_install:append() { rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/tests }
2. 清理并重新构建配方
执行命令彻底清理旧构建产物,重新生成完整包:
bitbake -c cleansstate python3-tinydb && bitbake python3-tinydb
完成后检查tmp/work/armv8a-poky-linux/python3-tinydb/4.8.0-r0/package目录,应能看到生成的.deb包,image目录下也会出现安装后的文件。
3. 重新构建镜像
执行镜像构建命令,此时python3-tinydb会被正确识别并纳入镜像:
bitbake <你的镜像名称>
额外验证点
- 检查
tmp/deploy/debs/armv8a目录,确认存在python3-tinydb_4.8.0-r0_armv8a.deb文件。 - 若仍有问题,可将镜像配置中的安装语句改为
IMAGE_INSTALL:append = " python3-tinydb"(注意开头空格),避免语法解析错误。
内容的提问来源于stack exchange,提问作者PhilBot
相关产品推荐
相关产品推荐

