How do I add more python modules to my yocto/openembedded project?

一曲冷凌霜 提交于 2019-12-06 22:27:31

问题


I wish to add more python modules to my yocto/openembedded project but I am unsure how to? I wish to add flask and its dependencies.


回答1:


some python packages having corresponding recipes in the meta folders, like Enum class for example:

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

unfortunately lot's of useful classes aren't available, but some might be needed for the python application. get used of installing missing packages using pip already on booted platform? but what if the target product is not IP network connected? the solution is to implement a new recipe and add to the platform meta layer (at least). Example is a recipe for the module keyboard useful for intercepting keys/buttons touch events:

  1. use PyPi web site to identify if the package is available:

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

  1. download archive available on the package description page:

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

  1. collect some useful information required to fill-out a new recipe:

    • SUMMARY - could be obtained from the package description page
    • HOMEPAGE - the project URL on github or bitbucket or sourceforge, etc
    • LICENSE - verify license type
    • LIC_FILES_CHKSUM by executing md5sum on existing LICENSE or README or PKG-INFO file located in the root of the package (preferrably)
    • SRC_URI[md5sum] - is md5sum of the archive itself. it will be used to discover and download archive on pypi server automatically with the help of supporting script inherit pypi
    • PYPI_PACKAGE_EXT - if the package is not tar.gz require to supply the correct extension
  2. create missing python-keyboard_0.13.1.bb recipe:

`

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. the package has been patched by adding

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

directive to the recipe due to missing CHANGES.md file used by setup.py script to identify package version (this step is optional). the patch itself has to be placed inside the folder next to the recipe matching recipe name but without version:

python-keyboard




回答2:


The OE layer index at layers.openembedded.org lists all known layers and the recipes they contain, so searching that should bring up the meta-python layer that you can add to your build and use recipes from.




回答3:


In your Image recipe you can add a Python module by adding it to the IMAGE_INSTALL variable:

IMAGE_INSTALL += "python-numpy"

You can find possible modules for example by searching for them with wildcards:

find -name *python*numpy*bb

in the Yocto Folder brings:

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


来源:https://stackoverflow.com/questions/38862088/how-do-i-add-more-python-modules-to-my-yocto-openembedded-project

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!