我有一种情况,我必须在 NSSM 中将 python.exe 作为服务运行。为了测试,我创建了 .exe 文件,其中只有import pandas as pd。我在 NSSM 中成功创建了服务。但是当我启动服务时,我得到错误windows 无法在本地计算机上启动服务,服务没有返回错误。
我还能做些什么来解决这个问题?
相信我,我已经尝试了堆栈溢出的所有解决方案。
- 我在启动服务时关闭了 cmd。
- 将所有控制权交给网络服务
我有一种情况,我必须在 NSSM 中将 python.exe 作为服务运行。为了测试,我创建了 .exe 文件,其中只有import pandas as pd。我在 NSSM 中成功创建了服务。但是当我启动服务时,我得到错误windows 无法在本地计算机上启动服务,服务没有返回错误。
我还能做些什么来解决这个问题?
相信我,我已经尝试了堆栈溢出的所有解决方案。
将 Python 安装在Program Files或其他公用文件夹中(如果尚未安装)。
如果您的服务作为NETWORK SERVICE 运行,则使用psexec作为NETWORK SERVICE运行 CMD :
psexec -i -u "nt authority\network service" cmd.exe
用这个 cmd安装 pandas 。
在 cmd 检查您是否可以运行 python 并导入 pandas。
由于服务不能有窗口,您需要以某种方式检查程序的结果。例如将异常重定向到文件:
try:
import pandas
# do something
except Exception as e:
with open(r'c:/service_output.txt', 'wt+') as fd:
fd.write(repr(e))