OpenEmbedded(Kirkstone)中Python validators库构建安装异常求助
OpenEmbedded Kirkstone 集成 Python validators 0.22.0 安装异常问题解决
问题场景
在OpenEmbedded Kirkstone版本构建中,自定义了Python validators 0.22.0的recipe:
inherit pypi SUMMARY = "Python Data Validation for Humans™" HOMEPAGE = "https://python-validators.github.io/validators" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf28bd09a60e145c3171c531b9e677d" SRC_URI[sha256sum] = "77b2689b172eeeb600d9605ab86194641670cdb73b60afd577142a9397873370" BBCLASSEXTEND = "native nativesdk"
构建过程无报错,但安装后发现/usr/lib/python3.10/site-packages下仅生成UNKNOWN-0.0.0.dist-info文件夹(包含正确许可证元信息),没有任何Python代码文件。尝试切换多种Python构建类均未解决,排查后发现validators的pyproject.toml要求setuptools≥61,而meta-oe-core提供的setuptools版本为59.5.0。
解决方案
方法一:升级meta-oe-core中的setuptools到≥61版本
- 在本地layer中创建setuptools的升级recipe,基于现有recipe修改:
- 将版本改为61.x或更高兼容版本(例如61.2.0)
- 更新
SRC_URI[sha256sum]为对应新版本的校验值 - 确保
LIC_FILES_CHKSUM等元信息匹配新版本
- 将该layer的优先级设置高于meta-oe-core,保证构建时优先调用升级后的setuptools
方法二:修改validators recipe,兼容低版本setuptools
validators 0.22.0依赖高版本setuptools是因为用了新的pyproject.toml配置,可通过以下操作绕过:
- 在validators recipe中替换继承类,改为
inherit pypi setuptools3 - 添加额外配置,强制使用传统构建流程:
其中DEPENDS += "python3-setuptools-scm-native" EXTRA_OE_PYTHON = "--no-build-isolation"--no-build-isolation跳过构建隔离,直接用系统中的setuptools;python3-setuptools-scm-native用于处理版本生成,避免出现UNKNOWN版本问题 - 重新构建验证,此时应能生成正确的validators代码文件和对应版本的dist-info文件夹
内容的提问来源于stack exchange,提问作者Jan Schatz
相关产品推荐
相关产品推荐

