Jon Dyte wrote:
> Don't ask why this has to be all in one script!!!!
You must have a pretty good reason, to willingly put yourself through
all these acrobatics... ;-)
Well, you could replace
Server(sys.modules["__main__"],9999)
with
Server('__main__', 9999)
and all should be fine. The Publisher will resolve '__main__' and find
your module without all the sys.modules hunting.
Or, if you know the name of your script, (e.g. 'foo.py'), you could
write it like this::
if __name__ == '__main__':
from twisted.internet import reactor
from quixote.server.twisted_http import Server
import foo
s = Server(foo, 9999)
reactor.run()
elif __name__ == 'foo':
_q_exports = []
def _q_index(request):
request.response.set_content_type("text/plain")
return "This is the _q_index function!"
It's a sneaky way of defining a 'module within a script'. Well, sort of.
The MyApp class is unnecessary in the example (though perh. you need it
in your actual code): just instantiating a Server will register it with
the reactor, and that's all you really need to do.
BTW, enabling PTL seems a bit irrelevant if you're trying to pack
everything into one script, since PTL only comes into play when you
import a module.
-- Graham