Movable Python Use Cases
What Can You Do With This Thing Anyway ?
Movable Python is useful for several different tasks. This page will give you a quick overview of a few of the different uses you can put it to.
A Movable Python distribution is typically about fifty mega-bytes decompressed. This can be reduced by removing extension modules that you don't use, plus a few other tricks. See Customizing Movable Python for details.
This means that you can carry Python, along with a development environment, around on a USB stick or flash memory card. We have users running Zope from a flash drive.
It will run without being installed, and isn't dependent on the location it is run from. You can happily carry Movable Python from machine to machine.
The usual reason for carrying Python around on a stick, is that you want to use it on machines which may or may not have Python already. Movable Python can run without being installed. It needs no registry entries and knows the path to all the dlls (system or otherwise) that it uses.
This can be particularly useful for system administration, where you want to run administrative scripts (diagnostic or cleanup) on different computers. You can also hack together scripts 'live' without needing Python installed.
Even if Python is installed, this won't interfere with Movable Python. (Nor will any installed Tcl.) This means you can run have your own custom environment, whether Python is installed on the target machine or not.
It's not just small administrative scripts that will run with Movable Python though. Movable Python can run large Python systems. If you find a Python framework, program or extension module that doesn't seem to work: flag this up on the mailing list. We'll work on getting it running.
At the time of writing Python 2.5 has just been released. Work on Python 2.6 and on Python 3.0 is already underway.
All major version changes of Python bring changes, improvements and bugfixes. As well as these benefits, they also trail minor incompatibilities in their wake. For example in Python 2.5, with and as became reserved keywords.
It can also be hard to remember which features were introduced in which version of Python. For example, if your code has to run on Python 2.2 are you sure that every time you check if a substring is 'in' a string you have limited your substring to one character ?
Movable Python is a great way of testing programs with multiple versions of Python without having to have them all installed. You can configure Movable Python to run programs with different interpreters, including the installed version of Python, so you can easily switch which version of Python your program is being run with. You can also fire up interactive interpreter sessions for the different versions.
Movable Python remains isolated from any installed version of Python. It doesn't pick up on settings like PYTHONPATH, registry settings, or installed modules. If it did, you would have version conflicts for the standard library and extension modules.
You can create 'custom environments' to run your programs in, choosing what extension modules are available.
You can test the install procedures for programs you create, or disgnose problems with particular combinations or versions of programs.
Movable Python provides some extra features beyond those found in the normal Python interpreter.
These include the graphical launcher program, the ability to log the output of all scripts that you run, and the ability to enable psyco for all scripts.
See The Manual for details of all the features of Movable Python.