Packaging Python Applications Using Autopackage

Due to a compile time switch to the python interpreter, there are two incompatible ABIs for python insert version here. The difference is how python handles unicode characters in strings (either 2 byte or 4 byte wide representation). In short, python files compiled against one version of the interpreter will not work on a system with the other interpreter. See the Linux Problems - Python Page for details.

Ideas on how to work around the issue

  • Ship a private version of the interpreter that is compatible with the app.
  • Double compiling and use binary diffs to install the correct version at install time. (c.f. how C++ ABI differences are handled.)
  • Autopackage installs two python interpreters - one for each ABI - in an autopackage private directory that apps can use.

Ship interpreter in application package

Blender3d uses this approach and ...

Double compile python modules

...

Autopackage installs two interpreters

...