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

时间:2016-08-09 23:38:56

标签: python linux yocto bitbake openembedded

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

4 个答案:

答案 0 :(得分:5)

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

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

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

  1. 使用PyPi网站确定包是否可用:
  2. https://pypi.org/project/keyboard/

    1. 在包描述页面上提供下载档案:
    2. https://github.com/boppreh/keyboard/archive/master.zip

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

        • 摘要 - 可以从包描述页面
        • 获得
        • HOMEPAGE - github或bitbucket或sourceforge等上的项目网址
        • 许可证 - 验证许可证类型
        • LIC_FILES_CHKSUM,对位于软件包根目录中的现有md5sumLICENSEREADME文件执行PKG-INFO(最好)
        • SRC_URI [md5sum] - 归档本身的md5sum。它将用于在支持脚本inherit pypi
        • 的帮助下自动在pypi服务器上发现和下载存档
        • PYPI_PACKAGE_EXT - 如果包裹不是tar.gz需要提供正确的扩展程序
      2. 创建缺少的python-keyboard_0.13.1.bb食谱:

      3. `

        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"
        

        `

        1. 通过添加
        2. 修补了包

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

          由于CHANGES.md脚本使用setup.py文件缺少标识包版本(此步骤是可选的),因此

          配方指令。补丁本身必须放在配方匹配配方名称旁边的文件夹中,但没有版本:

          python-keyboard

答案 1 :(得分:3)

layers.openembedded.org上的OE图层索引列出了所有已知图层及其包含的配方,因此搜索应该会显示您可以添加到构建中的元python图层并使用其中的配方。

答案 2 :(得分:3)

这个问题很旧,但是目前在2020年有一个名为pipoe的python软件包。

pipoe可以为您生成与Python软件包相对应的.bb类!

用法:

$ pip3 install pipoe
$ pipoe -p requests
OR
$ pipoe -p requests --python python3

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

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

答案 3 :(得分:0)

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

IMAGE_INSTALL += "python-numpy"

您可以找到可能的模块,例如通过使用通配符搜索它们:

find -name *python*numpy*bb
Yocto文件夹中的

带来:

./poky/meta/recipes-devtools/python/python-numpy_1.7.0.bb