|
Robert Brewer
fumanchu at amor.org
Wed Oct 13 23:02:54 EDT 2004
Hi,
I'm running mod_python (3.1.3-win32) and trying to write a WSGI wrapper
for it. I figured I'd call apache.build_cgi_env to get an environ dict,
but I get the following error message:
File "C:\Python23\lib\site-packages\mod_python\apache.py", line 541,
in build_cgi_env
if len(req.path_info) > 0:
TypeError: len() of unsized object
I've already worked around it, but the function in question is:
def build_cgi_env(req):
"""
Utility function that returns a dictionary of
CGI environment variables as described in
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
"""
req.add_common_vars()
env = req.subprocess_env.copy()
if len(req.path_info) > 0:
env["SCRIPT_NAME"] = req.uri[:-len(req.path_info)]
else:
env["SCRIPT_NAME"] = req.uri
env["GATEWAY_INTERFACE"] = "Python-CGI/1.1"
# you may want to comment this out for better security
if req.headers_in.has_key("authorization"):
env["HTTP_AUTHORIZATION"] = req.headers_in["authorization"]
return env
With a little printlining, it seems my req.path_info is None, and
therefore has no length. Could we just write the following instead? It
fixed the problem for me.
if req.path_info:
env["SCRIPT_NAME"] = req.uri[:-len(req.path_info)]
else:
env["SCRIPT_NAME"] = req.uri
Thanks for your time,
Robert Brewer
MIS
Amor Ministries
fumanchu at amor.org
|