【问题标题】:How do I add more python modules to my yocto/openembedded project?如何向我的 yocto/openembedded 项目添加更多 python 模块?
【发布时间】:2016-12-16 04:04:17
【问题描述】:

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

【问题讨论】:

    标签: python linux yocto bitbake openembedded


    【解决方案1】:

    一些 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 通过对位于包根目录中的现有 LICENSEREADMEPKG-INFO 文件执行 md5sum(最好)
      • SRC_URI[md5sum] - 是档案本身的md5sum。它将用于在支持脚本inherit pypi的帮助下自动发现和下载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"
    

    `

    1. 该软件包已通过添加
    2. 进行修补

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

    由于缺少 setup.py 脚本用于识别包版本的 CHANGES.md 文件而导致的配方指令(此步骤是可选的)。补丁本身必须放在与配方名称匹配但没有版本的配方旁边的文件夹中:

    python-keyboard

    【讨论】:

    • 非常感谢您的回答!完美运行。这应该被接受为正确答案,对BBCLASSEXTEND 做一点解释就好了。
    【解决方案2】:

    这个问题很老了,但是目前2020年有一个python包叫pipoe

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

    用法:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        IMAGE_INSTALL += "python-numpy"
        

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

        find -name *python*numpy*bb
        

        在 Yocto 文件夹中带来:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-18
          • 2021-10-07
          • 2018-02-21
          相关资源
          最近更新 更多