猿问

pyinstaller 启动服务时出错:服务没有及时响应启动或控制请求

几天以来,我一直在寻找解决方案,但没有成功。我们有一个 Windows 服务构建来将一些文件从一个位置复制到另一个位置。

所以我用 Python 3.7 构建了如下所示的代码。完整的代码可以在Github上找到。

当我使用 python 运行服务时一切正常,我可以安装服务并启动服务。

这使用命令:

安装服务:

  • python jis53_backup.py 安装

运行服务:

  • python jis53_backup.py 开始

当我现在使用 pyinstaller 和命令编译此代码时:

  • pyinstaller -F --hidden-import=win32timezone jis53_backup.py

创建 exe 后,我可以安装该服务,但在尝试启动该服务时出现错误:

启动服务出错:服务没有及时响应启动或控制请求

我已经在 Stackoverflow 和 Google 上浏览了多篇与此错误相关的帖子,但都没有成功。我没有选择在需要运行此服务的 PC 上安装 python 3.7 程序。这就是我们试图获得 .exe 版本的原因。

我已确保根据我在不同问题中找到的信息更新路径。

路径定义的图像:

我还复制了 pywintypes37.dll 文件。


从 -> Python37\Lib\site-packages\pywin32_system32


到 -> Python37\Lib\site-packages\win32


有没有人对如何让这个工作有任何其他建议?


'''

    Windows service to copy a file from one location to another

    at a certain interval.

'''

import sys

import time

from distutils.dir_util import copy_tree


import servicemanager

import win32serviceutil


import win32service

from HelperModules.CheckFileExistance import check_folder_exists, create_folder

from HelperModules.ReadConfig import (check_config_file_exists,

                                      create_config_file, read_config_file)

from ServiceBaseClass.SMWinService import SMWinservice


sys.path += ['filecopy_service/ServiceBaseClass',

             'filecopy_service/HelperModules']



class Jis53Backup(SMWinservice):

    _svc_name_ = "Jis53Backup"

    _svc_display_name_ = "JIS53 backup copy"

    _svc_description_ = "Service to copy files from server to local drive"


    def start(self):

        self.conf = read_config_file()

        if not check_folder_exists(self.conf['dest']):

            create_folder(self.conf['dest'])


        self.isrunning = True


    def stop(self):

        self.isrunning = False


长风秋雁
浏览 427回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答