From bf73ee114f4085e06181037305599fdfeba59523 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Thu, 14 Dec 2017 18:28:10 +0200 Subject: [PATCH] docs/packages: mpy_bin2res no longer required to create resources. Everything happens automagically with overridden "sdist" from sdist_upip.py. --- docs/reference/packages.rst | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/docs/reference/packages.rst b/docs/reference/packages.rst index d8d198e62..3d05f0b27 100644 --- a/docs/reference/packages.rst +++ b/docs/reference/packages.rst @@ -259,8 +259,8 @@ an extra intermediate step when packaging application - creation of The idea of this module is to convert binary data to a Python bytes object, and put it into the dictionary, indexed by the resource name. -This conversion is done using ``tools/mpy_bin2res.py`` script from -the MicroPython distribution. +This conversion is done automatically using overridden ``sdist`` command +described in the previous section. Let's trace the complete process using the following example. Suppose your application has the following structure:: @@ -281,17 +281,28 @@ following calls:: pkg_resources.resource_stream(__name__, "data/image.png") You can develop and debug using the `MicroPython Unix port` as usual. -When times come to make a distribution package out of it, you would -need to run following command, with ``my_app/`` being the current -directory (and assuming ``mpy_bin2res.py`` is in your path):: +When time comes to make a distribution package out of it, just use +overridden "sdist" command from sdist_upip.py module as described in +the previous section. - mpy_bin2res.py data/page.html data/image.png +This will create a Python resource module named ``R.py``, based on the +files declared in ``MANIFEST`` or ``MANIFEST.in`` files (any non-``.py`` +file will be considered a resource and added to ``R.py``) - before +proceeding with the normal packaging steps. -This will produce a Python resource module named ``R.py``. Afterwards, -you package the project for distribution as usual (using ``setup.py sdist``). Prepared like this, your application will work both when deployed to filesystem and as frozen bytecode. +If you would like to debug ``R.py`` creation, you can run:: + + python3 setup.py sdist --manifest-only + +Alternatively, you can use tools/mpy_bin2res.py script from the +MicroPython distribution, in which can you will need to pass paths +to all resource files:: + + mpy_bin2res.py data/page.html data/image.png + References ---------- -- GitLab