如何在yocto / openembedded项目中添加更多python模块?

tim*_*lmg 8 python linux openembedded bitbake yocto

我想在我的yocto / openembedded项目中添加更多的python模块,但是我不确定该怎么做?我希望添加flask及其依赖项。

Ole*_*rin 12

一些在meta文件夹中具有相应配方的python软件包,例如Enum类:

meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb

不幸的是,没有很多有用的类,但是python应用程序可能需要一些有用的类。习惯使用pip已经在引导平台上安装缺少的软件包?但是如果目标产品未连接IP网络怎么办?解决方案是实施新配方并至少添加到平台元层。示例是模块的配方,keyboard可用于拦截按键/按钮触摸事件:

  1. 使用PyPi网站确定该软件包是否可用:

https://pypi.org/project/keyboard/

  1. 打包说明页面上的下载存档:

https://github.com/boppreh/keyboard/archive/master.zip

  1. 收集填写新食谱所需的一些有用信息:

    • 概要-可以从包装说明页面获得
    • HOMEPAGE-github,bitbucket或sourceforge等上的项目URL
    • 许可证-验证许可证类型
    • 通过执行LIC_FILES_CHKSUM md5sum现有LICENSEREADMEPKG-INFO位于封装的根文件(最好是)
    • SRC_URI [md5sum]-属于md5sum存档本身。它将在支持脚本的帮助下自动在pypi服务器上发现和下载存档inherit pypi
    • PYPI_PACKAGE_EXT-如果tar.gz不需要软件包提供正确的扩展名
  2. 创建缺少的python-keyboard_0.13.1.bb食谱:

`

SUMMARY = "Hook and simulate keyboard events on Windows and Linux"
HOMEPAGE = "https://github.com/boppreh/keyboard"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9bc8ba91101e2f378a65d36f675c88b7"

SRC_URI[md5sum] = "d4b90e53bbde888e7b7a5a95fe580a30"
SRC_URI += "file://add_missing_CHANGES_md.patch"

PYPI_PACKAGE = "keyboard"

PYPI_PACKAGE_EXT = "zip"

inherit pypi
inherit setuptools

BBCLASSEXTEND = "native nativesdk"
Run Code Online (Sandbox Code Playgroud)

`

  1. 该软件包已通过添加补丁

SRC_URI += "file://add_missing_CHANGES_md.patch"

由于缺少脚本用于标识软件包版本的CHANGES.md文件,因此对配方的指令无效setup.py(此步骤是可选的)。补丁本身必须放在与配方名称匹配的配方旁边的文件夹中,但不能使用版本:

python-keyboard


Pau*_*aul 11

这个问题很老了,但目前在 2020 年有一个名为pipoe.

pipoe可以.bb为你生成python包对应的类!

用法:

$ pip3 install pipoe
$ pipoe -p requests
OR
$ pipoe -p requests --python python3
Run Code Online (Sandbox Code Playgroud)

现在将生成的 .bb 文件复制到您的图层并使用它们。

https://pypi.org/project/pipoe/


h0c*_*355 1

在您的图像配方中,您可以通过将 Python 模块添加到IMAGE_INSTALL变量来添加它:

IMAGE_INSTALL += "python-numpy"
Run Code Online (Sandbox Code Playgroud)

您可以通过使用通配符搜索来找到可能的模块:

find -name *python*numpy*bb
Run Code Online (Sandbox Code Playgroud)

在 Yocto 文件夹中包含:

./poky/meta/recipes-devtools/python/python-numpy_1.7.0.bb
Run Code Online (Sandbox Code Playgroud)