Help us understand the problem. What is going on with this article?

MicroPythonのmpy-crossのメモ

More than 1 year has passed since last update.

免責

この記事に従って発生した如何なる損害も筆者は負うことができません。ご免なさい。

目的

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
tab4moji
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away