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
  • src/: Python module code for the Viam module
  • Makefile: make commands to build the module in different ways
  • meta.json: the metadata config file used when uploading/updating module info on the registry
  • requirements.txt: list of Python packages the module depends on
  • run.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.

Description
Example repo for bundling a Viam module as an AppImage with AppImageBuilder
Readme Apache-2.0 48 KiB
Languages
Python 68.4%
Shell 17.4%
Makefile 9.3%
Dockerfile 4.9%