我正在使用 Yocto Kirkstone 在 64 位 ARM 设备上为 Linux 5.15 构建目标 rootfs。
我想使用 python3 模块“nicegui”作为该设备的 UI。没有现有的收据,所以我添加了一个(如下所示)。该库依赖于“fastapi”,而“fastapi”又依赖于“typing-extensions”。两者都没有 Yocto 的食谱,所以我尝试添加这些食谱。不幸的是,它们依赖于 TOML 安装配置文件,而不是 Yocto 可以本地处理的传统 setup.py 方法。虽然以下对这些模块的配方的尝试成功完成,但实际上并没有创建可以在设备上导入的源文件。
我已经尝试了这两个相关帖子中的所有建议(都不起作用): 为 Yocto 添加 PyPi 包,无需 setup.py 将基于pyproject.toml的python项目添加到yocto镜像中
如何编写 Yocto Kirkstone 配方来成功安装 python3-fastapi 和 python3-typing-extensions?谢谢。
请注意,我也尝试了以下 fastapi 和打字扩展:
do_configure:prepend() {
cat > ${S}/setup.py <<-EOF
from setuptools import setup
setup(
name="${PYPI_PACKAGE}",
version="${PV}",
license="${LICENSE}",
)
EOF
}
NiceGUI:
SUMMARY = "Recipe to embedded the Python PiP Package nicegui"
HOMEPAGE ="https://pypi.org/project/nicegui"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dbc3e3da2b6b1b24fcf4e94e809c1257"
inherit pypi setuptools3
PYPI_PACKAGE = "nicegui"
SRC_URI[md5sum] = "8752807e3a9ade2e56f63c3ba9b36b48"
SRC_URI[sha256sum] = "137601729eddc721346193089c8ead290f8dcdfd9664de2cfaaaab72ece5feb8"
快速API:
SUMMARY = "Recipe to embedded the Python PiP Package fastapi"
HOMEPAGE ="https://pypi.org/project/fastapi"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=95792ff3fe8e11aa49ceb247e66e4810"
inherit pypi python_poetry_core
PYPI_PACKAGE = "fastapi"
SRC_URI[md5sum] = "5e9226e70e1553a630599cf584ed53de"
SRC_URI[sha256sum] = "266775f0dcc95af9d3ef39bad55cff525329a931d5fd51930aadd4f428bf7ff3"
打字扩展:
SUMMARY = "Recipe to embedded the Python PiP Package typing_extensions"
HOMEPAGE ="https://pypi.org/project/typing_extensions"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f"
inherit pypi python_poetry_core
PYPI_PACKAGE = "typing_extensions"
SRC_URI[md5sum] = "3cd9b7b9a465afbcca8548e11668ca64"
SRC_URI[sha256sum] = "1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"
到目前为止您采取的方法似乎是正确的,但问题可能是由于您尝试安装的软件包(fastapi、typing-extensions)使用的是“pyproject.toml”配置文件而不是传统的“setup.py”。 Yocto 可能无法处理基于“pyproject.toml”的开箱即用的 Python 包的安装。
一种可能的解决方案是将这些包的“pyproject.toml”配置转换为“setup.py”文件,以便 Yocto 可以正确处理安装。您可以使用诗歌导出命令从“pyproject.toml”配置创建“setup.py”文件。
以下是您可以采取的步骤的概述: