运行python脚本以安装Windows服务时无响应

时间:2019-03-19 05:41:14

标签: python pywin32

我以前曾经运行过python来注册Windows服务。但是我现在没有注册。我运行样本服务注册脚本,没有一个响应。只需运行并退出。服务经理未显示我的服务。我不知道该如何解决。我尝试了很多次以重新安装pywin32和python。但是无论如何它是行不通的。任何帮助将不胜感激。

代码如下:

import win32serviceutil
import win32service
import win32event
import servicemanager
import socket


class AppServerSvc (win32serviceutil.ServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"

    def __init__(self,args):
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None,0,0,None)
        socket.setdefaulttimeout(60)
        print(333)


    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                              servicemanager.PYS_SERVICE_STARTED,
                              (self._svc_name_,''))
        self.main()

    def main(self):
        pass

if __name__ == '__main__':
    win32serviceutil.HandleCommandLine(AppServerSvc)

这是我在运行代码后得到的:

  

C:\ Users \ saige \ Documents \ flasky \ flasky-first-edition-5a> python   create_service.py安装

     

C:\ Users \ saige \ Documents \ flasky \ flasky-first-edition-5a> python   create_service.py安装

1 个答案:

答案 0 :(得分:0)

我最终通过切换python版本修复了该错误。我发现Python 3.7在某些方面不支持win32。我安装了python 2.7,然后工作了。当然,我更改了环境路径变量,并手动为python 2.7安装了win32。