You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSSM托管Python服务启动后暂停:pandasql模块未找到问题求助

解决NSSM运行Python脚本时的ModuleNotFoundError问题

这个问题我之前碰到过!核心原因就是NSSM启动服务时用的Python环境和你手动运行脚本的环境不是同一个——毕竟你手动能跑说明pandasql确实装了,但服务进程找不到,肯定是环境路径没对上。下面是一步步的排查和解决方法:

  • 1. 确认你手动运行时的Python路径

    先打开命令提示符,输入where python,找到你手动执行脚本时实际用到的Python.exe完整路径(比如虚拟环境里的C:\Users\YourName\venv\Scripts\python.exe,或者系统环境的C:\Python310\python.exe)。手动运行脚本时用的是哪个Python,服务就得调用同一个。

  • 2. 修改NSSM的应用配置

    如果已经创建了服务,打开命令行执行nssm edit <你的服务名称>,在弹出的配置窗口里:

    • 把Application标签页的Path改成你刚找到的完整Python.exe路径(别只写python,要写全路径)
    • Arguments填写你的脚本完整路径,比如C:\projects\your_script.py
    • 确保Working Directory设置为脚本所在的文件夹,避免路径相关的额外问题
  • 3. 验证环境一致性(可选但推荐)

    可以在你的Python脚本开头加几行代码,用来输出服务进程的Python环境信息:

    import sys
    import logging
    logging.basicConfig(filename='env_check.log', level=logging.INFO)
    logging.info(f"Python executable path: {sys.executable}")
    logging.info(f"Package search paths: {sys.path}")
    

    然后手动运行脚本一次,再启动服务一次,对比两个日志文件里的路径。如果不一样,就说明环境确实不匹配,回到步骤2修正路径。

  • 4. 检查服务的运行权限

    默认情况下,NSSM可能用Local System账户运行服务,这个账户的环境变量和你当前登录用户的不一样。你可以在NSSM配置的Log On标签页,选择"此账户",输入你当前的用户名和密码,这样服务就会用你的用户环境运行,和手动操作时一致。

  • 5. 确保包安装到服务用的环境

    如果确认了服务用的Python路径,直接用这个路径的pip来安装pandasql,比如:

    C:\Users\YourName\venv\Scripts\pip.exe install pandasql
    

    这样就能保证包安装在服务能访问到的环境里。

做完这些步骤后,重启服务再试试,应该就能解决ModuleNotFoundError的问题了。如果还有其他错误,再根据新的日志信息排查即可。

内容的提问来源于stack exchange,提问作者Abhik Chakraborty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:22:42