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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:23:20