Yes, to clarify there's a lot to the Python runtime beyond "the Python
interpreter":
* If you create a Python object then it's the Python runtime that
handles its reference counting.
* If you access an attribute of that object then it uses the internal
Python function "PyObject_GetAttrString".
* If you use a dict or a list or a tuple or a str or anything else like
that then you're using the implementations built into the Python runtime.
* If you use any standard library modules then you're using their
implementation from the Python runtime (or you're using the interpreter,
depending on whether they're written in C or not).
Cython only translates Python(ish) code into C code that calls the
Python runtime.
So Cython doesn't solve your problem. It may even make your problem
worse - Cython puts a big emphasis on code being fast rather than code
being small.
However - to repeat: MicroPython is an implementation of Python
specifically written to run on this kind of small computer. It probably
has some limitations but it is probably your most likely solution. I
have never used it so I could not comment more.