[Mark Hammond]
See also http://collector.zope.org/Zope/1533 - this has a number of changes to make services much more reliable on Windows. My patch includes your change, but along the lines of Tim's objection, mine compromises with:
+os.environ["PYTHONPATH"] = os.environ.get("PYTHONPATH", "") + ";" + SOFTWARE_HOME
My patches also have the killer feature of writing any Zope stdout to the Windows event log in the case of error - critical if you hope to see what the underlying error was. The patch also allows for Zope to be terminated gracefully (rather than unconditionally terminating it as now), re-instates support for Windows NT, and allows for a complete, functioning pywin32 build to be used (including win32com etc).
Just-by-way-of-reminder ly,
[Tres Seaver]
+1 for landing Mark's patch as a prerequisite to fixing *any* Windows-service related bug in the future.
I think we should call now "the future". Windows services were broken completely by the sitecustomize.py fiddling, and remain in a hackish state. Christian, Mark wrote the book (literally) on managing Windows services from Python, and wrote all the win32all support code Zope has relied on forever to get Windows services working at all. If it's at all possible to apply his patches, please do so -- they address several long-standing problems Zope suffers on Windows, and nobody on Earth is better qualified to fix them than Mark.