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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:20:16