【发布时间】:2016-12-16 04:04:17
【问题描述】:
我希望在我的 yocto/openembedded 项目中添加更多 python 模块,但我不确定如何做?我希望添加烧瓶及其依赖项。
【问题讨论】:
标签: python linux yocto bitbake openembedded
我希望在我的 yocto/openembedded 项目中添加更多 python 模块,但我不确定如何做?我希望添加烧瓶及其依赖项。
【问题讨论】:
标签: python linux yocto bitbake openembedded
一些 python 包在元文件夹中有相应的配方,例如 Enum 类:
meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb
不幸的是,很多有用的类不可用,但 python 应用程序可能需要一些类。习惯于在已启动的平台上使用pip 安装丢失的软件包?但是如果目标产品没有连接 IP 网络怎么办?解决方案是实现一个新配方并添加到平台元层(至少)。示例是模块keyboard 的配方,可用于拦截按键/按钮触摸事件:
https://pypi.org/project/keyboard/
https://github.com/boppreh/keyboard/archive/master.zip
收集填写新食谱所需的一些有用信息:
LICENSE 或 README 或 PKG-INFO 文件执行 md5sum(最好)md5sum。它将用于在支持脚本inherit pypi的帮助下自动发现和下载pypi服务器上的存档
tar.gz,则需要提供正确的扩展名创建缺少的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"
`
SRC_URI += "file://add_missing_CHANGES_md.patch"
由于缺少 setup.py 脚本用于识别包版本的 CHANGES.md 文件而导致的配方指令(此步骤是可选的)。补丁本身必须放在与配方名称匹配但没有版本的配方旁边的文件夹中:
python-keyboard
【讨论】:
BBCLASSEXTEND 做一点解释就好了。
这个问题很老了,但是目前2020年有一个python包叫pipoe。
pipoe可以为你生成对应python包的.bb类!
用法:
$ pip3 install pipoe
$ pipoe -p requests
OR
$ pipoe -p requests --python python3
现在将生成的 .bb 文件复制到您的图层并使用它们。
【讨论】:
layers.openembedded.org 上的 OE 层索引列出了所有已知层及其包含的配方,因此搜索该层应该会显示元 Python 层,您可以将其添加到构建中并从中使用配方。
【讨论】:
在您的图像配方中,您可以通过将 Python 模块添加到 IMAGE_INSTALL 变量来添加它:
IMAGE_INSTALL += "python-numpy"
您可以找到可能的模块,例如使用通配符搜索它们:
find -name *python*numpy*bb
在 Yocto 文件夹中带来:
./poky/meta/recipes-devtools/python/python-numpy_1.7.0.bb
【讨论】: