web-dev-qa-db-ja.com

yocto / openembeddedプロジェクトにpythonモジュールを追加するにはどうすればよいですか?

Yocto/openembeddedプロジェクトにpythonモジュールを追加したいのですが、方法がわかりません。flaskとその依存関係を追加したいと思います。

9
timelmg

Layers.openembedded.orgのOEレイヤーインデックスには、すべての既知のレイヤーとそれに含まれるレシピが一覧表示されるため、検索すると、ビルドに追加してレシピを使用できるメタPythonレイヤーが表示されます。

3
Ross Burton

いくつかのpythonパッケージには、メタフォルダーに対応するレシピがあります。たとえば、Enumクラスのようになります。

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

残念ながら、多くの便利なクラスは利用できませんが、pythonアプリケーションに必要なものもあります。起動したプラットフォームですでにpipを使用して不足しているパッケージをインストールすることに慣れてください。ターゲット製品がIPネットワークに接続されていませんか?解決策は、新しいレシピを実装し、プラットフォームメタレイヤーに追加することです(少なくとも)。例は、キー/ボタンのタッチイベントを傍受するのに役立つモジュールkeyboardのレシピです。 :

  1. pyPi Webサイトを使用して、パッケージが利用可能かどうかを確認します。

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

  1. パッケージの説明ページで利用可能なアーカイブをダウンロードします。

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

  1. 新しいレシピを記入するために必要ないくつかの有用な情報を収集します。

    • 概要-パッケージの説明ページから入手できます
    • HOMEPAGE-github、bitbucket、sourceforgeなどのプロジェクトURL
    • LICENSE-ライセンスタイプを確認します
    • パッケージのルートにある既存のLICENSEまたはREADMEまたはmd5sumファイルに対してPKG-INFOを実行することによるLIC_FILES_CHKSUM(できれば)
    • 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. パッケージは追加することでパッチが適用されています

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

パッケージバージョンを識別するためにCHANGES.mdスクリプトによって使用されるsetup.pyファイルが欠落しているため、レシピへのディレクティブ(このステップはオプションです)。パッチ自体は、レシピ名と一致するがバージョンがないレシピの隣のフォルダー内に配置する必要があります。

python-keyboard

3
Oleg Kokorin

この質問は古いですが、現在2020年には、pipoeというpythonパッケージがあります。

pipoeは、pythonパッケージに対応する.bbクラスを生成できます!

使用法:

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

次に、生成された.bbファイルをレイヤーにコピーして使用します。

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

0
Paul

画像レシピでは、IMAGE_INSTALL変数に追加することでPythonモジュールを追加できます。

IMAGE_INSTALL += "python-numpy"

たとえば、ワイルドカードを使用してモジュールを検索することにより、可能なモジュールを見つけることができます。

find -name *python*numpy*bb

yoctoフォルダに次のものがあります。

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