Nuitka Compiler for Python

I like developing using Python.  I like its program structure, its performance and the way it supports coroutines.  What I don’t like is distributing Python programs.  Python installations from one computer to the next are notoriously different from one another.  I may have two seemingly similar Linux computers running the same version of Python and a program may run well on one and may not find a dependency on another.

While the language and run-time system are well-defined, the way in which search-paths are set up and resolved does not seem to be. (See http://stackoverflow.com/questions/25715039/python-interplay-between-lib-site-packages-site-py-and-lib-site-py). Virtualenv aims to help, but the contract between Python and “the system” seems confusing.  The result for me has that it has been difficult to produce shrink-wrapped programs for distribution from Python source.

The types of programs I’ve developed usually have dependencies on locally-developed SWIG-generated shared-libraries (.so), so my case may not be typical.  (However, it is interesting :-)  I’ve looked at using Cython to compile Python modules, and it works well for building an extension module in C, or for extending a C program with Python.  However, if your aim is software construction using Python for the distribution of a complete application, then Cython seems lacking.

Nuitka

Nuitka (http://nuitka.net) is a “Python Compiler.”   Nuitka can compile just one or a few modules, or it can compile an entire Python program.  It takes a higher-level view of the job of compiling an entire project.
Continue reading Nuitka Compiler for Python