For most of what I will do and show, I'm going to be using Webware For Python. I like Webware because it's simple, and is more or less the perfect vehicle for showing various aspects of web application development. So, for this first post, I'm going to go through a usual installation of Webware. My steps will be suitable to Linux and Mac OSX users. Windows users will have a different experience, and I'd be grateful if someone using Windows could figure out how to use it.

The current version of Webware is Webware 1.0b1. Download it from the link above at Sourceforge.

Create a new directory (mkdir webware), change into that directory (cd webware), and unpack the tarball: tar xvzf Webware-1.0b1.tar.gz (Obviously, you'll have to remember where you downloaded it to). Change into the Webware program directory (cd Webware-1.0b1) and, not as root or admin, issue python install.py.

Webware uses a primitive installation method and lives in its own directory outside of the python install tree. This is different from Rails, the other appserver with which I'm most familiar and which lives under Ruby's gem library path usually, but it works fine for our purposes. You'll just leave it where it is.

When the install is done (and you've given your default installation a password that you'll probably never use), back up one directory (cd ..), and create an empty application with this command: python Webware-1.0b1/bin/MakeAppWorkDir.py Demo

Congratulations! You've installed Webware and created a parallel working directory for your application. At a bare minimum, you can now cd Demo and run your first Webware application: python Launch.py. You can Ctrl-C out of the application at any time.

This will create an application running at port 8080. If you're on the same machine as your application, you can browse to http://localhost:8080 and you'll see the default application, which shows some examples from inside Webware. If you want others on other computers to see your application, you'll have to edit Configs/AppServer.cfg and change the Host entry to an empty string rather than "localhost". I recommend playing with the demos a little bit to get a feel for it; the color table is pretty enough. And we're going to rip it all out soon anyway.

But this is just your foundation. More next time.