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
...
