0

我有一种情况,我必须在 NSSM 中将 python.exe 作为服务运行。为了测试,我创建了 .exe 文件,其中只有import pandas as pd。我在 NSSM 中成功创建了服务。但是当我启动服务时,我得到错误windows 无法在本地计算机上启动服务,服务没有返回错误

我还能做些什么来解决这个问题?

相信我,我已经尝试了堆栈溢出的所有解决方案。

  1. 我在启动服务时关闭了 cmd。
  2. 将所有控制权交给网络服务

在此处输入图像描述

4

1 回答 1

0
  1. 将 Python 安装在Program Files或其他公用文件夹中(如果尚未安装)。

  2. 如果您的服务作为NETWORK SERVICE 运行,则使用psexec作为NETWORK SERVICE运行 CMD :

     psexec -i -u "nt authority\network service" cmd.exe
    
  3. 用这个 cmd安装 pandas 。

  4. 在 cmd 检查您是否可以运行 python 并导入 pandas。

  5. 由于服务不能有窗口,您需要以某种方式检查程序的结果。例如将异常重定向到文件:

     try:
         import pandas
         # do something
     except Exception as e:
         with open(r'c:/service_output.txt', 'wt+') as fd:
             fd.write(repr(e))
    
于 2020-11-26T12:27:56.777 回答