From: Jack T M. I. <jak...@th...> - 2008-11-24 22:07:16
|
Hi! So, I have a service written, which does file synchronization across a network. To be clear, the script runs perfectly (windows XP), it does its job, I just need to get py2exe working with it. I used the template class from http://code.activestate.com/recipes/551780/ (just inherited from class Service and overrode start and stop). That's about all there is to it in this case. My inherited class is called ftpserver (the name's a bit misleading); it's in ftpserver.py. Again, running it in normal python I have no problems getting it to work. I used the following setup.py file: from distutils.core import setup import py2exe import sys class Target: def __init__(self, **kw): self.version="0.5.0" self.company_name = "No Company" self.copyright = "no copyright" self.name = "py2exe sample files" ftpserver = Target( description = "FTP Synchronization Server Service", modules = ["ftpserver"] ) setup(service=['ftpserver']) #end setup.py I'm using python 2.6, pywin32 build 212, and py2exe 0.6.9. When I run setup.py py2exe, the setup program completes "successfully", and indeed, if I test it on mere console applications, it seems to work O.K. However, when I try to run the ftpserver.exe file that it generates, I get this: Traceback (most recent call last): File "boot_service.py", line 45, in <module> servicemanager.startup_error: PrepareToHostMultiple failed! I checked boot_service.py; it's referencing some pywin32 stuff that I just don't have a clue about (and I only seem to have the pyc files for pywin32...) Does anyone have any ideas what might cause this error? The program in question is attached. -- Sincerely, Jack Mudge jak...@th... |
From: Mark H. <mha...@sk...> - 2008-11-25 22:27:43
|
> When I run setup.py py2exe, the setup program completes "successfully", > and indeed, if I test it on mere console applications, it seems to work > O.K. > > However, when I try to run the ftpserver.exe file that it generates, I > get > this: > Traceback (most recent call last): > File "boot_service.py", line 45, in <module> > servicemanager.startup_error: PrepareToHostMultiple failed! Although the message would appear to be a bug, you generally don't run the executable directly to execute it. Try executing 'ftpserver.exe install' then 'ftpserver start' (or just 'net start your_service_name', or just start it via control panel) Cheers, Mark |
From: Mark H. <mha...@sk...> - 2008-11-25 23:42:18
|
[Please keep replies on the list] > On Tuesday 25 November 2008 01:30:15 pm Mark Hammond wrote: > > > When I run setup.py py2exe, the setup program completes > "successfully", > > > and indeed, if I test it on mere console applications, it seems to > work > > > O.K. > > > > > > However, when I try to run the ftpserver.exe file that it > generates, I > > > get > > > this: > > > Traceback (most recent call last): > > > File "boot_service.py", line 45, in <module> > > > servicemanager.startup_error: PrepareToHostMultiple failed! > > > > Although the message would appear to be a bug, you generally don't > run the > > executable directly to execute it. Try executing 'ftpserver.exe > install' > > then 'ftpserver start' (or just 'net start your_service_name', or > just > > start it via control panel) > > > > Cheers, > > > > Mark > > I still get the same error when I do either one of those (Does that > mean that > the error is occuring before command line processing?); the net start > command > just gives me an error for "ftpserver", "ftp-service-srv", > and "ftpserver.exe" as the name; the second one (ftp-service-srv) works > fine if I install it as a python script. I'd recommend giving Python 2.5 a try to see if that helps. I admit I haven't specifically tested py2exe services with python 2.6 Cheers, Mark |
From: Jack T M. I. <jak...@th...> - 2008-11-26 01:00:31
|
On Tuesday 25 November 2008 03:41:52 pm you wrote: > [Please keep replies on the list] > Sorry 'bout that; thought it was. > > I'd recommend giving Python 2.5 a try to see if that helps. I admit I > haven't specifically tested py2exe services with python 2.6 > > Cheers, > > Mark That's my next step :) Thanks for the help! -- Sincerely, Jack Mudge jak...@th... |
From: Jack T M. I. <jak...@th...> - 2008-11-26 08:23:42
|
On Tuesday 25 November 2008 05:01:25 pm Jack T Mudge III wrote: > On Tuesday 25 November 2008 03:41:52 pm you wrote: > > [Please keep replies on the list] > > Sorry 'bout that; thought it was. > > > I'd recommend giving Python 2.5 a try to see if that helps. I admit I > > haven't specifically tested py2exe services with python 2.6 > > > > Cheers, > > > > Mark > > That's my next step :) > > Thanks for the help! Since I'm running XP in a VM, I just took it back to a clean install and installed python 2.5 instead of 2.6 (and pywin32 for 2.5, and py2exe for 2.5, of course). The script again runs just fine when using the normal python interpreter. Unfortunately, I got the same result: After running setup.py py2exe, it "compiled" successfully, but when I run ftpserver.exe install it gives me the (same) error: Traceback ..: File "boot_service.py", line 45, in <module> servicemanager.startup_error: PrepareToHostMultiple failed! This is my testing virtual machine; it's a clean slate, so I imagine this means the problem is with me somewhere. I attached my source code just in case. -- Sincerely, Jack Mudge jak...@th... |
From: Mark H. <mha...@sk...> - 2008-11-26 11:22:37
|
> Since I'm running XP in a VM, I just took it back to a clean install > and installed python 2.5 instead of 2.6 (and pywin32 for 2.5, and > py2exe for 2.5, of course). The script again runs just fine when using > the normal python interpreter. > > Unfortunately, I got the same result: After running setup.py py2exe, it > "compiled" successfully, but when I run ftpserver.exe install it gives > me the (same) error: > > Traceback ..: > File "boot_service.py", line 45, in <module> > servicemanager.startup_error: PrepareToHostMultiple failed! Do you get the same result with the py2exe service sample? Thanks, Mark |
From: Daniel P. <da...@pr...> - 2008-11-26 18:53:19
|
I think your problem is with the "instart" function that installs and starts the service at the same time. The only way I've ever been able to successfully install a py2exe'd service is by using the -install command-line parameter of the frozen .exe (i.e. using py2exe's service installer, not win32serviceutil.InstallService). - Daniel. Jack T Mudge III wrote: > Unfortunately, I got the same result: After running setup.py py2exe, > it "compiled" successfully, but when I run > ftpserver.exe install > it gives me the (same) error: > > Traceback ..: > File "boot_service.py", line 45, in <module> > servicemanager.startup_error: PrepareToHostMultiple failed! > > > This is my testing virtual machine; it's a clean slate, so I imagine this > means the problem is with me somewhere. I attached my source code just in > case. |
From: Jack T M. I. <jak...@th...> - 2008-11-27 23:04:40
|
On Thursday 27 November 2008 02:56:15 pm you wrote: > On Wednesday 26 November 2008 03:22:24 am Mark Hammond wrote: > > > Unfortunately, I got the same result: After running setup.py py2exe, it > > > "compiled" successfully, but when I run ftpserver.exe install it gives > > > me the (same) error: > > > > > > Traceback ..: > > > File "boot_service.py", line 45, in <module> > > > servicemanager.startup_error: PrepareToHostMultiple failed! > > > > Do you get the same result with the py2exe service sample? > > > > > > Thanks, > > > > Mark > > Nope, the sample seems to work fine. Just being a little forward thinking, > I did make sure my class has a __svc_name attribute (it does). > > On Wednesday 26 November 2008 10:54:51 am Daniel Pryden wrote: > > I think your problem is with the "instart" function that installs and > > starts the service at the same time. The only way I've ever been able to > > successfully install a py2exe'd service is by using the -install > > command-line parameter of the frozen .exe (i.e. using py2exe's service > > installer, not win32serviceutil.InstallService). > > > > - Daniel. > > I commented out everything to do with instart - the call in ftpserver.py > and the definition in service.py (just in case). It didn't help; the error > still occurs. > > Thanks again everybody for your help :). I'm going to try making this all > into one class instead of inheriting. I don't think it will change > anything, but it's worth a shot. UPDATE: Yep, that worked. I made it into one class instead of inheriting, and it worked just fine. P.S. sorry Mark; I think I sent the last one to your inbox instead of the mailing list again. I just switched e-mail clients, and this one (kmail) isn't doing quite what I keep expecting it to. I quoted the entire message this time so that it's available for everyone. -- Sincerely, Jack Mudge jak...@th... |