Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sanic作为Win10服务和pyinstaller问题_Python_Python 3.x_Windows Services_Sanic - Fatal编程技术网

Python Sanic作为Win10服务和pyinstaller问题

Python Sanic作为Win10服务和pyinstaller问题,python,python-3.x,windows-services,sanic,Python,Python 3.x,Windows Services,Sanic,是否有人尝试将sanic服务器构建为windows服务?? 我目前正面临这个问题,无法找到任何解决方案 这是我的密码: main.py模块 sanic_server.py模块 正如你所看到的,这很简单。基本上,问题在于直接运行服务。它试图启动,但突然停止 安装过程没有任何问题,您可以在下面看到: 但当我试图逃跑时,什么也没发生: 即使当我试图从任务管理器运行此程序时,它也试图启动,但突然停止 当我调试时,它会工作: 如果有人已经面临这个问题,请给我一些提示! 提前谢谢 import

是否有人尝试将sanic服务器构建为windows服务?? 我目前正面临这个问题,无法找到任何解决方案

这是我的密码:

  • main.py模块
  • sanic_server.py模块
正如你所看到的,这很简单。基本上,问题在于直接运行服务。它试图启动,但突然停止

安装过程没有任何问题,您可以在下面看到:

但当我试图逃跑时,什么也没发生:

即使当我试图从任务管理器运行此程序时,它也试图启动,但突然停止

当我调试时,它会工作:

如果有人已经面临这个问题,请给我一些提示! 提前谢谢

import win32service
import win32event
import servicemanager
import socket
import sys
import sanic_server as Server


class TestService(win32serviceutil.ServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"
    _svc_description_ = "My service description"

    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):
        Server.start_listening()



if __name__ == '__main__':
    if len(sys.argv) == 1:
        servicemanager.Initialize()
        servicemanager.PrepareToHostSingle(TestService)
        servicemanager.StartServiceCtrlDispatcher()
    else:
        win32serviceutil.HandleCommandLine(TestService)
from sanic import Sanic

app = Sanic("App Name")


def start_listening():
    app.run(host="0.0.0.0", port=8000)


@app.route('/')
def hello(request):
    return "Hello World!"