[LWN Logo]

From: "Gregory (Grisha) Trubetskoy" <grisha@ispol.com>
Subject: ANNOUNCE Httpdapy 1.3a
Date: Tue, 01 Dec 1998 18:14:12 -0500


There is a new version of Httpdapy out there, that even supports Bobo
now. It still needs some work and I would still call it alpha, but it 
already works really well.

Best of all, it now has Bobo support, so you get the best of both: The 
ease of development with Bobo and the speed of Python embedded within
the http server.

The URL is http://www.ispol.com/home/grisha/httpdapy/

Here is an excerpt from the README:


Httpdapy allows embedding Python within a webserver for a considerable
boost in performance and added flexibility in designing web based

Currently the best (and in some respects only) supported http server is


1. Bobo support. The httpdapi_bobo module allows the use of Bobo
(http://www.digicool.com/site/Bobo/) with httpdapi. See the module
itself to find out how.

2. This version makes a major leap forward by introducing multiple
interpreters. Scripts running in different directories will run in
(almost) completely separate and clean namespace. At (apache) module
initialization, a dictionary of interpreters keyed by interpreter name
is created. Interpreter name can be any string. For every hit,
Httpdapy will use the file parent directory path from the URI as
interpreter name. If an interpreter by this name already exists, it
will be used, else it is created. You can also force an interpreter
name with PythonInterpreter directive (whose effects recurse into
subdirectories). This is useful if you want to share an interpreter
between separate directories.

3. Autoreload mode. It is on by default. It makes the server keep
track of module import time and forces a reload when the script file
change time is later than the time of last import. (Don't confuse this
with Python's default behaviour. In Python, once the module has been
imported, nothing but the "reload" command will make the interpreter
read the file again.)

3. mod_python.c will cd into the directory to which the URL points and
httpdapi.py will prepend a '.' to PYTHONPATH. This means that scripts
can be imported from the current directory. This is more intuitive in
my opinion than knowing that scripts are imported from somewhere in

4. PythonInitFunction directive is now obsolete. It still works for
backwards compatibility, but it forces the interpreter to function in
"single interpreter" mode - i.e. all scripts share the same global
namespace. Note that you can still use separate interpreters in single
mode by forcing an interpreter name with PythonInterpreter directive.