自定义 python 模块的 Yocto 配方

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

我很难找到一个在 Yocto(更具体地说是 Xilinx 的 Petalinux)中构建自定义 python 模块的示例,该模块将安装到 python site-packages 目录中,以便我可以使用我的目标编写 Python 脚本模块。

这是我到目前为止所拥有的:

目录树

(在项目规范/元用户/食谱应用程序中)

├── foo-python
    ├── files
    │   └── foo-python.py
    └── foo-python.bb

foo-python.bb

#
# This file is the foo-python recipe.
#

SUMMARY = "Simple foo-python application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://foo-python.py"

RDEPENDS:${PN} = "python3-core"

S = "${WORKDIR}"

do_install() {
       install -d ${D}${PYTHON_SITEPACKAGES_DIR}/${PN}
       install -m 0644 foo-python.py ${D}${PYTHON_SITEPACKAGES_DIR}/${PN}/
}

FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/${PN}/*"

错误

当我 bitbake 我的食谱(Petalinux-build)时,我收到以下错误:

注意:执行任务错误:foo-python-1.0-r0 do_package:QA 问题:foo-python:文件/目录已安装,但未在任何版本中提供 包装:

/foo-python

/foo-python/foo-python.py

请设置文件以便打包这些项目。或者如果 它们是不需要的,避免安装它们或在 do_install 中删除它们。 foo-python:2 个已安装但未发布的文件。 [已安装与已发货] 错误:foo-python-1.0-r0 do_package:发现致命 QA 错误,失败 任务。

  1. 提前道歉,我只熟悉Petalinux,不知道Petalinux到底在哪里,和Yocto/Bitbake有重叠。
  2. 我可以在网上找到如何从开放嵌入层添加 python 模块的示例,但我找不到将自定义 python 模块作为可安装 python 添加到站点包中的单个示例。
python yocto bitbake petalinux
1个回答
0
投票

您可以将

inherit setuptools3
添加到配方中并创建 setup.py 来进行安装。一个例子可以是:

"""A setuptools based setup module.

See:
https://packaging.python.org/guides/distributing-packages-using-setuptools/
https://github.com/pypa/sampleproject
"""

# Always prefer setuptools over distutils
from setuptools import setup, find_packages


setup(
    name="foo-python",

    # Package info
    packages=["foo-python"] + ["foo-python." + pkg for pkg in find_packages("foo-python")],
    package_data={"foo-python": ["*.py"]},
    python_requires=">=3.7, <4",
    entry_points={
        "console_scripts": [
            "foo = foo-python.main:main",
        ],
    },
)

© www.soinside.com 2019 - 2024. All rights reserved.