Yocto Kirkstone Bitbake 食谱使用 Python3 TOML for python3-fastapi

问题描述 投票:0回答:1

我正在使用 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"
python-3.x pip yocto yocto-recipe toml
1个回答
0
投票

到目前为止您采取的方法似乎是正确的,但问题可能是由于您尝试安装的软件包(fastapi、typing-extensions)使用的是“pyproject.toml”配置文件而不是传统的“setup.py”。 Yocto 可能无法处理基于“pyproject.toml”的开箱即用的 Python 包的安装。

一种可能的解决方案是将这些包的“pyproject.toml”配置转换为“setup.py”文件,以便 Yocto 可以正确处理安装。您可以使用诗歌导出命令从“pyproject.toml”配置创建“setup.py”文件。

以下是您可以采取的步骤的概述:

  1. 为每个包创建具有必要依赖项的“pyproject.toml”文件。
  2. 使用“poetry export -f setup.py > setup.py”命令生成“setup.py”文件。
  3. 将生成的“setup.py”文件包含在相应包的 Yocto 配方中。 将这些包的“pyproject.toml”配置转换为“setup.py”文件后,您可以尝试再次构建 Yocto 映像。这应该使 Yocto 能够成功安装 Python 包并使其可以在您的设备上使用。
© www.soinside.com 2019 - 2024. All rights reserved.