py2exe - Python Windows Service - Updating with Esky -
i have working windows service, use py2exe build exe, , use wix toolset build msi.
this structure works, however, when introducing esky mix silent , automatic service updates, not getting updated version.
from distutils.core import setup import shutil, os esky import bdist_esky # setup.py windows service. works py2exe # class target: def __init__(self, **kw): self.__dict__.update(kw) self.version = "1.0.0" self.company_name = "" self.copyright = "2015" self.name = " edit service" myservice = target( description = 'edit tracker service', modules = ['logon_service'], cmdline_style='pywin32' ) setup( name = " edit service", data_files=[('files', ['configs.yaml']), ], version = "1.0.0", options = { "bdist_esky": { "includes": ['yaml', 'pymysql', 'win32timezone'], "freezer_module": 'py2exe', } }, zipfile = none, service=[myservice] )
running python setup.py bdist_esky
above setup.py results in .zip file being made. after unzipping, executable , service able installed, , started.
after incrementing version number, , running python setup.py bdist_esky
again, zip file created.
i run original .exe , sees hte update, fails perform, returning following exception
you running: 1.0.0 ('error updating app:', oserror(none, 'unable cleanup: startup hooks not run' ))
the excerpt win32service implementation relates esky following
if getattr(sys, "frozen", false): app = esky.esky(sys.executable, "http://localhost.com:8000") print "you running: %s" % app.active_version try: if(app.find_update() != none): app.auto_update() appexe = esky.util.appexe_from_executable(sys.executable) os.execv(appexe,[appexe] + sys.argv[1:]) except exception e: print("error updating app:", e) app.cleanup()
if there more info required, add more code needed. goalis achieve following.
- build executable / msi
- deploy everywhere
- update automatically central server.
i new distrubtions , esky in general, , advice appreciated!
Comments
Post a Comment