Yocto/openembeddedプロジェクトにpythonモジュールを追加したいのですが、方法がわかりません。flaskとその依存関係を追加したいと思います。
Layers.openembedded.orgのOEレイヤーインデックスには、すべての既知のレイヤーとそれに含まれるレシピが一覧表示されるため、検索すると、ビルドに追加してレシピを使用できるメタPythonレイヤーが表示されます。
いくつかの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
またはmd5sum
ファイルに対してPKG-INFO
を実行することによるLIC_FILES_CHKSUM(できれば)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"
パッケージバージョンを識別するためにCHANGES.md
スクリプトによって使用されるsetup.py
ファイルが欠落しているため、レシピへのディレクティブ(このステップはオプションです)。パッチ自体は、レシピ名と一致するがバージョンがないレシピの隣のフォルダー内に配置する必要があります。
python-keyboard
この質問は古いですが、現在2020年には、pipoe
というpythonパッケージがあります。
pipoe
は、pythonパッケージに対応する.bb
クラスを生成できます!
使用法:
$ pip3 install pipoe
$ pipoe -p requests
OR
$ pipoe -p requests --python python3
次に、生成された.bbファイルをレイヤーにコピーして使用します。
画像レシピでは、IMAGE_INSTALL
変数に追加することでPythonモジュールを追加できます。
IMAGE_INSTALL += "python-numpy"
たとえば、ワイルドカードを使用してモジュールを検索することにより、可能なモジュールを見つけることができます。
find -name *python*numpy*bb
yoctoフォルダに次のものがあります。
./poky/meta/recipes-devtools/python/python-numpy_1.7.0.bb