Standalone apps

· development

Just a few thoughts and logs for people who try (very hard) to make standalone versions of their programs, be it through statically linking or through packaging their python/matlab code. As of 2013.6.23, not much structure for this document.

  • Ideal: compile for the target platform, static linking. This is, in principle, the most obvious way of doing this task. However, for many reasons, this might not always be a very convenient solution, especially for the most hurrying people (or those, like researchers, that do not explicitly focus on programming).
    A framework of choice under Mac (and Linux?), probably under Windows, in summary, fully cross-platform, is to use Qt. The (SDK) is nice, with QtCreator as a truly effective IDE. The macdeploy binary tool is working like a charm.
  • Lazy: package your python scripts. I am a researcher and I prefer to focus on research. I however need demos, either to disseminate the knowledge (see my publication list, some code is often provided with these publications), or to make one’s point clear (the original demo by O. Gillet to demonstrate re-mixing capabilities of Audio Source Separation results was a great inspiration for me!).
    I have recently tried several tools like PyInstaller, Py2App or cx_Freeze.Main issue with py2app:  include tkSnack such that launching mixplay as a “normal” app under macosx does actually find it. I ultimately had to find out a bit more about Tcl or Tk, Tkinter, specifically where the program is looking to load the required TCL modules.
    [EDIT 20130626] As it were, it seems this packaging with py2app does not work in my case: on another machine, the program was looking for Tcl on a path that only existed on the computer where it had been compiled… Had to install all the stuff on the second computer to launch directly the python program!

Leave a Comment