将python打包的exe做成windows服务运行的流程步骤!

将python打包的exe做成windows服务运行的流程步骤!

将 Python 脚本打包的 exe 文件作为 Windows 服务运行,可以通过以下步骤实现,Windows 服务是一种在后台运行的程序,通常不需要用户交互,本文给大家介绍了一个完整的指南,需要的朋友可以参考下。

1. 使用 pywin32 创建 Windows 服务

pywin32 是一个 Python 库,提供了与 Windows API 的接口,可以用来创建和管理 Windows 服务。

安装 pywin32

1
pip install pywin32

编写服务代码

以下是一个简单的 Python 脚本示例,用于创建一个 Windows 服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
import time
class MyService(win32serviceutil.ServiceFramework):
_svc_name_ = "MyPythonService"  # 服务名称
_svc_display_name_ = "My Python Service"  # 显示名称
_svc_description_ = "This is a Python-based Windows service."  # 服务描述
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
self.is_alive = True
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
self.is_alive = False
def SvcDoRun(self):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_, ''))
self.main()
def main(self):
while self.is_alive:
# 在这里编写你的服务逻辑
print("Service is running...")
time.sleep(5)
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(MyService)

说明

  • _svc_name_:服务的内部名称。
  • _svc_display_name_:在 Windows 服务管理器中显示的名称。
  • _svc_description_:服务的描述信息。
  • SvcDoRun:服务启动时运行的逻辑。
  • SvcStop:服务停止时运行的逻辑。

2. 将 Python 脚本打包为 exe

使用 PyInstaller 将上述脚本打包为 exe 文件:

1
pyinstaller --onefile your_service_script.py

生成的 exe 文件位于 dist 目录中。

3. 安装服务

使用 sc 命令将 exe 文件安装为 Windows 服务:

1
sc create MyPythonService binPath= "C:\path\to\your_service_script.exe"
  • MyPythonService:服务的名称。
  • binPath:exe 文件的完整路径。

4. 启动服务

使用以下命令启动服务:

1
sc start MyPythonService

5. 停止和删除服务

  • 停止服务:
1
sc stop MyPythonService
  • 删除服务:
1
sc delete MyPythonService

6. 调试服务

  • 如果服务无法启动,可以查看 Windows 事件日志(Event Viewer)中的错误信息。
  • 也可以在服务代码中添加日志记录功能,以便调试。

7. 注意事项

  • 确保你的 exe 文件具有管理员权限。
  • 如果服务需要访问网络或其他系统资源,请确保配置了正确的权限。
  • 如果服务需要与用户交互,请使用win32service.SERVICE_INTERACTIVE_PROCESS标志。

通过以上步骤,你可以将 Python 脚本打包的 exe 文件作为 Windows 服务运行。如果遇到问题,请提供具体的错误信息以便进一步分析。

以上就是将python打包的exe做成windows服务运行的流程步骤的详细内容。

 

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Excelbook.cn Excel技巧 SQL技巧 Python 学习!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>