PIP安装的pywin32服务失败:功能不正确

时间:2018-07-10 04:49:51

标签: python-3.x windows-services pywin32

运行Python 3.6.5,PyWin32223。
安装后,我在路径中包含了C:\ Python32 \ lib \ win32文件夹。

我只是运行正常的testService shell,该shell似乎遍布整个Internet。可以在下面找到。

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)

    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)

我可以“编译”并很好地安装服务,一旦运行它,我就会收到检查系统日志的错误消息。当我这样做时,出现以下错误。

  

“测试服务流程”服务因服务特定的错误“不正确”功能而终止。.

这十年来,我一直无法通过Google找到任何帮助。我是该库的新手,我发现的唯一帮助是将其lib添加到路径中。如果它是路径错误,则不再存在。有人有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

事实证明,这是一个权限问题。我请求root 30秒钟,并且像一个吊饰一样工作。仅供参考,如果有人遇到此问题。

答案 1 :(得分:0)

就我而言,问题出在我运行python模块的方式上。我没有执行Python脚本,而是使用

$ python -m module

在适当的目录中运行时,此方法可以正常工作,但作为服务运行时,找不到该模块。因此,如果直接使用Python执行模块的解决方案是 pip install 该模块,以便服务可以找到它。