python-appimage-module
This is an example of using AppImageBuilder to bundle a Python module as an AppImage (only supported on AArch64 for now), and then running it on a robot.
Use this as a reference for:
- An alternative to managing Python version/dependencies directly for your robot.
Robot config
Replace module_id
and model
with the values you choose for your module.
TODO: add example config after the module is on the registry
Quick tour of this repo
packaging/
: the directory containing the Dockerfile that configures the Docker image to run the builder in, the AppImageBuilder.yml config file, and the icon. You must have Docker installed before running the build.src/
: Python module code for the Viam moduleMakefile
:make
commands to build the module in different waysmeta.json
: the metadata config file used when uploading/updating module info on the registryrequirements.txt
: list of Python packages the module depends onrun.sh
: the entrypoint execution script that starts up the module process
Using this repo as boilerplate
If you fork this and want to deploy to a robot, you'll need to change all placeholder names and references to the viam namespace. Follow the fork instructions from the Python example repo.
If you aren't making a camera module, you may want to use a different component's repo along with this repo as boilerplate in place of the src
folder. When doing this, make sure to maintain the structure of a Python module i.e. keeping the outermost __init__.py
to ensure the build doesn't break. Moreover, in this case, be sure to update your meta.json
with the updated models.