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

使用BitBake构建python3-argh时遇dpkg-buildpackage缺失错误

解决devtool导入PyPI包argh后bitbake编译报错(dpkg-buildpackage不存在)

问题根源

dpkg-buildpackage是Debian/Ubuntu体系的专属打包工具,OpenEmbedded/Yocto环境默认不包含该工具。出这个错是因为devtool自动生成的argh配方错误引入了Debian打包逻辑,但argh作为纯Python包,完全不需要这套流程。

解决步骤

  1. 定位并检查生成的配方文件
    找到devtool生成的argh配方,路径一般为build/recipes-devtools/argh/argh_<版本号>.bb,查看文件中是否存在inherit debian-package这类语句,或者自定义do_compile阶段调用了dpkg-buildpackage。

  2. 修正配方内容
    保留Python包所需的基础配置,替换错误的继承和构建逻辑,示例正确配方结构:

    SUMMARY = "An unobtrusive argparse wrapper with natural syntax"
    HOMEPAGE = "https://github.com/neithere/argh/"
    LICENSE = "LGPL-3.0-only"
    LIC_FILES_CHKSUM = "file://LICENSE;md5=d41d8cd98f00b204e9800998ecf8427e"  # 替换为实际文件md5值
    
    SRC_URI = "pypi://pypi.python.org/packages/source/a/argh/argh-${PV}.tar.gz;md5=..."  # 替换为对应包的md5值
    
    inherit setuptools3
    
    RDEPENDS:${PN} += "python3-core python3-argparse"
    
    • 核心是继承setuptools3(或根据OE版本选择pip),这是OpenEmbedded专门用于构建Python包的类,会自动处理编译、安装全流程。
    • 删除所有和Debian打包相关的代码块。
  3. 清理并重新构建
    先清理旧的构建状态:

    bitbake -c cleansstate argh
    

    再重新执行构建:

    bitbake argh
    
  4. 后续注意事项
    devtool从PyPI导入包时,偶尔会因为包的setup.py结构特殊生成错误配方,遇到这类问题优先检查配方的inherit语句和构建逻辑,确保用对Python包对应的OE构建类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:50:08