使用BitBake构建python3-argh时遇dpkg-buildpackage缺失错误
解决devtool导入PyPI包argh后bitbake编译报错(dpkg-buildpackage不存在)
问题根源
dpkg-buildpackage是Debian/Ubuntu体系的专属打包工具,OpenEmbedded/Yocto环境默认不包含该工具。出这个错是因为devtool自动生成的argh配方错误引入了Debian打包逻辑,但argh作为纯Python包,完全不需要这套流程。
解决步骤
定位并检查生成的配方文件
找到devtool生成的argh配方,路径一般为build/recipes-devtools/argh/argh_<版本号>.bb,查看文件中是否存在inherit debian-package这类语句,或者自定义do_compile阶段调用了dpkg-buildpackage。修正配方内容
保留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打包相关的代码块。
- 核心是继承
清理并重新构建
先清理旧的构建状态:bitbake -c cleansstate argh再重新执行构建:
bitbake argh后续注意事项
devtool从PyPI导入包时,偶尔会因为包的setup.py结构特殊生成错误配方,遇到这类问题优先检查配方的inherit语句和构建逻辑,确保用对Python包对应的OE构建类。
内容的提问来源于stack exchange,提问作者ihavearms
相关产品推荐
相关产品推荐

