Installation
------------
This is a standard Python Distutil distribution. To install simply run:

    python setup.py install

This makes Pexpect available to any script on the machine. You need
root access to install it this way. If you do not have root access or
if you do not wish to install Pexpect so that is available to any script
then you can just copy the pexpect.py file to same directory as your script.

Trouble on Debian and Ubuntu
----------------------------
For some stupid reason Debian Linux does not include the distutils module
in the standard 'python' package. Instead, the distutils module is packaged
separately in the 'python-dev' package. So to add distutils back
into Python, simply use aptitude or apt-get to install 'python-dev'.
As root, run this command:
    apt-get install python-dev
Why they do this is mysterious because:
    - It breaks the Python model of "batteries included".
    'distutils' isn't an extra or optional module --
    it's parts of the Standard Python Library.
    - The Debian 'python-dev' package is a microscopic 50K installed.
    So what are they saving?
    - Distutils is not only interesting to developers. Many non-development
    oriented Python packages use 'distutils' to install applications.
    - As far as I can tell, the package maintainers must go through
    more trouble to remove 'distutils' from the standard Python
    distribution than it would take just to leave it in.

