2017-08-17 15 views
1

この問題はOpenembedded/Yoctoに関するものです。'setuptoolsという名前のモジュールはありませんが、DEPENDS変数に含まれています

カスタムPython3スクリプトでコンパイルする必要があるソースコードがあります。 つまり、一部のpython3スクリプトはdo_compile()プロセス中に実行する必要があります。 スクリプトはsetuptoolsをインポートするので、DEPENDS += "python3-setuptools-native"をレシピに追加しました。私がドキュメンテーションを理解する限り、これはsetuptoolsモジュールをビルドプロセス(ネイティブ)で使用できるようにする必要があります。 しかし、bitbakeがdo_compile()プロセスを実行すると、私はこのエラーを受け取ります:no module named 'setuptools'

FILE:test.bb

LICENSE = "BSD" 
LIC_FILES_CHKSUM = "file://test/LICENSE;md5=d41d8cd98f00b204e9800998ecf8427e" 

DEPENDS += "python3-setuptools-native" 

SRC_URI = "file://test.py \ 
      file://LICENSE" 

do_compile() { 
    python3 ${S}/../test.py 
} 

FILE:test.py

import setuptools 

print("HELLO") 

私は、最小限の(非)実施例にそれを打破してみましょう

ビットベーキング:

$ bitbake test 
ERROR: test-1.0-r0 do_compile: Function failed: do_compile (log file is located at /path/to/test/1.0-r0/temp/log.do_compile.8532) 
ERROR: Logfile of failure stored in: /path/to/test/1.0-r0/temp/log.do_compile.8532 
Log data follows: 
| DEBUG: Executing shell function do_compile 
| Traceback (most recent call last): 
| File "/path/to/test-1.0/../test.py", line 1, in <module> 
|  import setuptools 
| ImportError: No module named 'setuptools' 
| WARNING: exit code 1 from a shell command. 
| ERROR: Function failed: do_compile (log file is located at /path/to/test/1.0-r0/temp/log.do_compile.8532) 
ERROR: Task (/path/to/test.bb:do_compile) failed with exit code '1' 
NOTE: Tasks Summary: Attempted 400 tasks of which 398 didn't need to be rerun and 1 failed. 
NOTE: Writing buildhistory 

Summary: 1 task failed: 
    /path/to/test.bb:do_compile 
Summary: There was 1 ERROR message shown, returning a non-zero exit code. 

私のexepectationは間違っていますか?DEPENDS += "python3-setuptools-native"はpython3モジュールの 'setuptools'をdo_compile()のpython3スクリプトで利用できるようにしていますか?どうすればこれを達成できますか?

答えて

1

setuptoolsのサポートを取得するにはかなりの量が必要です。幸いにもそれを処理するためのクラスがあります:

inherit setuptools3 

これは、すべてのことが、OE-COREにsetuptoolsのベースのプロジェクトをパッケージ化する必要がありますする必要があります。あなたのプロジェクトが標準のsetup.pyを持っている限り、do_compile()やdo_install()関数を書く必要はありません。

詳細を見る必要がある場合は、meta/classes/setuptools3.bbclassmeta/classes/distutils3.bbclassには、必要なもの(レシピからネイティブのPythonを呼び出すためのむしろ意外な方法を含む)が含まれている必要があります。

関連する問題