#免責
この記事に従って発生した如何なる損害も筆者は負うことができません。ご免なさい。
#目的
main.mpyが動かなくて困った思いをしたので、mpy-crossの自分メモを作ります。
知識が増えたら追加していきます。
#キホン
mpy-crossを使って*.pyを*.mpyにします。
まずはmpy-crossの用意。
mpy-crossを用意する
$ git clone --recursive https://github.com/micropython/micropython.git
$ make -C micropython/mpy-cross
$ cp -ax micropython/mpy-cross/mpy-cross パスが通っているところ/
試しに使ってみる。
*.pyを*.mpyにする方法
$ mpy-cross sample.py
$ \ls
sample.py sample.mpy
#本体とmpy-crossのバージョンを合わせる
mpy-crossはMicroPython本体と同じバージョンにします。
そうしないと互換性の問題でエラーが出ます。
MicroPython本体のバージョンv1.2.0
>>> import sys
>>> sys.implementation
(name='micropython', version=(1, 12, 0), mpy=9733)
mpy-crossのバージョンv1.12(v5)
$ mpy-cross --version
MicroPython v1.12-5-g42e45bd69 on 2019-12-27; mpy-cross emitting mpy v5
#boot.pyとmain.pyは*.mpyにしない方がいい
デバイスに入れておけば自動的に動くはずなのに、動きませんでした。
なぜ?
#*.mpyよりも*.pyを優先するらしい
importしたときに、*.pyを優先するようです。
#UNIX版には-mcache-lookup-bcが必要
UNIX版のMicroPythonでは、*.mpyを作るときに-mcache-lookup-bcを付ける必要があるようです。
Error when importing .mpy module #2896
*.pyを*.mpyにする方法
$ mpy-cross -mcache-lookup-bc sample.py