|
David Bear
David.Bear at asu.edu
Fri Jun 2 15:06:32 EDT 2006
I'm getting really frustrated. I have a python program that works.
Then make modifications that should affect things -- then it breaks.
I've got to figure a better way of debugging.
Here's an example:
I have a python program:
def _return_psp(req, ad, tmpl="empty.pspml"):
'''
returns a psp template with all vars and whatever is in ad
'''
ad.setdefault('title', 'Empty Page')
vars = {"ad": ad}
return psp.PSP(req, tmpl, vars=vars)
def getDebug(req):
'''
returns values for debug and object introspection
'''
form = req.form
info = []
info.append('request uri %s ' % req.uri)
info.append('req.connection.base_server: %s ' % req.connection.base_server)
bodycontent = ''.join(info)
return _return_psp(req, dict(body=bodycontent, title="Debug Page"), "empty.pspml")
# if __name__ == "__main__":
# sys.exit(1)
I have a psp file called empty.pspml that looks like this:
-----------
<%
""" psp """
try:
title = ad['title']
except KeyError:
title = "Key Error in AD"
try:
dbg = ad['body']
except KeyError:
dbg = 'Didnt have debug Info'
%>
<html>
<head>
<title>
<%= title %>
</title>
</head>
<body>
<h1><%= title %></h1>
<hr>
<%= dbg %>
<hr>
</body>
</html>
----------
Okay. It all works the way I expect. Calling the url
mypython.py/getDebug
returns the results I expect.
Then I add a function like this:
def index(req):
return _return_psp(req, dict(body="this is stupid", title="stupid
title"))
Now everything apache returns is a 404 (but the apache not found page
is NOT returned, ie the body content of the http response is empty)
Looking in my apache logs all I see is the modpython is reimported a
module:
Fri Jun 02 11:51:21 2006] [notice] mod_python: (Re)importing module
'mod_python.publisher'
[Fri Jun 02 11:51:21 2006] [notice] mod_python: (Re)importing module
'mypthon' with path set to '['/htdocs/mp']'
There's got to be a better way. I comment out all the import
statements the are modpython specific, and use a command line python
session to import the module -- it imports without errors. I was
thinking importing it would reveal any syntactic errors...
Any other pointers on debug methods?
--
David Bear
phone: 480-965-8257
fax: 480-965-9189
College of Public Programs/ASU
Wilson Hall 232
Tempe, AZ 85287-0803
"Beware the IP portfolio, everyone will be suspect of trespassing"
|