Problem with py2exe-frozen CGIHttpServer-based script
vincent at visualtrans.de
Thu Nov 27 18:46:48 CET 2003
"Thomas Heller" <theller at python.net> schrieb im Newsbeitrag
news:isl66xxj.fsf at python.net...
| "vincent wehren" <vincent at visualtrans.de> writes:
| > Hi,
| > as a small capabilities demo I coded the piece below to show how to use
| > Python for cgi'ing on localhost and it more or less does the trick :-).
| > However, I when I freeze it with py2exe, starting the resulting exe
| > the server allright,
| > but fails execute cgi commands correctly (i.e. the expected output -
| > say from cgi.test()) - is no longer emitted to the browser...).
| > Is there some py2exe-magic I need to do that I don't know of? Something
| > the code that prevents the frozen version to work?
| That's an easy one!
| Look into CGIHTTPServer.py, near line 232:
| if self.is_python(scriptfile):
| => interp = sys.executable
| if interp.lower().endswith("w.exe"):
| # On Windows, use python.exe, not pythonw.exe
| interp = interp[:-5] + interp[-4:]
| cmdline = "%s -u %s" % (interp, cmdline)
| It tries to start 'sys.executable' with the python cgi script. Normally
| sys.executable is the Python interpreter, but for a py2exe'd script this
| is the running executable (which is no longer a usual Python
| Changing this line to 'interp = r"c:\python23\python.exe"' makes the
| frozen script work (although then the Python installation is required
| (A few minutes later, looking at CGIHTTPServer.py again)
| It seems you have to hack this module so that the code block starting at
| line 270 is used, which says:
| # Other O.S. -- execute script in this process
| and then it works fine.
I suspected something along those lines....
I'll give the hack a go!
More information about the Python-list