Writing programs for your own use is nice, but often you want to send them to other people. This usually means creating some kind of installer. Pyinstaller is a neat little utility that takes a Python program and wraps it up with the appropriate Python runtime and any libraries that are required. This makes it dead easy to send a Python program to someone else.
There are two ways you can use it. The program will make a folder containing all the required resources and an executable which you can zip up and send to people, or you can make a single executable that unzips itself into a temporary folder and then runs from that.
I’ve been using it to make distributable versions of the HullOS code editor and it works very well. The only snags are the size of the executable (in the case of the HullOS editor my fairly small program swells to 8Mbytes) and the slight delay when opening the app as it gets all the libraries ready.
Pyinstaller doesn’t make a “universal” application that runs on anything. Instead it needs to run on each target platform to make a program for that platform. And I’m in the rather ironic situation of having the Pyinstaller program refuse to install on my Apple Mac, so at the moment I can’t make a Mac version of the HullOS editor.
But, bearing in mind that it is free and that when you get it going it just works, I reckon it is a very good solution to the problem of getting your code out there.