python-3.x - pydantic 模块的 Yocto 配方
问题描述
我尝试在 Yocto 2.6 Thud 中包含来自 pypi.org 的 python modul pydantic 和下一个配方(由https://github.com/NFJones/pipoe自动生成)
SUMMARY = "Data validation and settings management using python 3.6 type hinting"
HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
AUTHOR = "Samuel Colvin <s@muelcolvin.com>"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2c02ea30650b91528657db64baea1757"
inherit setuptools3
SRC_URI = "https://files.pythonhosted.org/packages/b9/d2/12a808613937a6b98cd50d6467352f01322dc0d8ca9fb5b94441625d6684/pydantic-1.8.2.tar.gz"
SRC_URI[md5sum] = "7845d2f3c8fe8602f73f53ec5b6dfa29"
SRC_URI[sha256sum] = "26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"
S = "${WORKDIR}/pydantic-1.8.2"
DEPENDS += " "
RDEPENDS_${PN} = "python3-typing-extensions"
BBCLASSEXTEND = "native nativesdk"
依赖的模块也包含在生成的配方中,并且编译正常。无论如何,我在 bitbake 期间收到错误并且无法避免:
Log data follows:
| DEBUG: Executing shell function do_configure
| File "setup.py", line 47
| self.links.add(f'.. _#{id}: https://github.com/samuelcolvin/pydantic/issues/{id}')
| ^
| SyntaxError: invalid syntax
| WARNING: exit code 1 from a shell command.
任何想法(无需伪造和编辑源代码)?
解决方案
python3
Yocto 2.6 Thud 中的配方是 Python 3.5.6 版本。
但是,pydantic
PyPI 包f-strings
在其 setup.py 中使用 Python,这是 Python 3.6 中引入的语法。因此,配方无法构建,因为 Yocto 的 Python 3.5 无法识别该语法,因此SyntaxError
Python 解释器尝试运行setup.py
.
pydantic
安装指南说:
除了 python 3.6、3.7、3.8 或 3.9、typing-extensions 和 python 3.6 的数据类 backport 包之外,pydantic 没有必需的依赖项。如果你已经安装了 python 3.6+ 和 pip,你就可以开始了。
要在 Yocto 中构建这个包,您需要一个包含更新版本的 Python 3 的版本 - 通常在 Yocto 的次要版本中更新。见下文:
推荐阅读
- c# - 在 c# 中将 dd/MM/yyyy hh:mm:ss 转换为 dd-MMM-yyyy hh:mm:ss 给出错误:字符串未被识别为有效日期时间
- java - 从 MainActivity 调用位于 Service 中的函数
- python - PyQt5:继承 QTextCodec
- ios - 如何在uiview中添加波浪边框?
- windows - 变量不会在循环的第一次迭代中更新。CMD 批处理
- c# - 如何在 C# 中登录到控制台
- wso2esb - 引起:org.postgresql.util.PSQLException:错误:列“imagesync__c”的类型为布尔值,但表达式的类型为字符变化
- c - 由于长路径导致的 fopen 错误不存在此类文件
- c++ - 在 multimap 的同一行中打印相同键的值,在下一行打印不同键的值
- reactjs - 运行生产服务器时未定义文档,如何解决此错误?