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

通过SSH运行Pytest测试提示‘no module named pandas’的排查求助

解决SSH会话中pytest找不到pandas的问题

这种情况大概率是SSH会话的环境和你本地登录服务器时的环境不一致导致的——虽然你本地和虚拟环境都装了pandas,但SSH连接时用的Python环境根本不是你装了依赖的那个。下面一步步排查解决:

  • 先确认SSH会话用的是哪个Python环境
    分别在本地登录服务器和SSH连接后执行这两个命令,对比输出:

    which python3  # 或者which python,看你日常用的版本
    pip3 list | grep pandas
    

    如果SSH里的Python路径和本地不一样,或者pip list里找不到pandas,那就是环境选错了。

  • 直接指定虚拟环境的Python来运行pytest
    这是最稳妥的办法,不用纠结环境变量。假设你的虚拟环境路径是~/my_venv,那SSH连接后直接跑:

    ~/my_venv/bin/python -m pytest -s -v jupyter_test.py
    

    用虚拟环境里的Python调用pytest,就能确保用的是该环境下的所有依赖,包括pandas。

  • 修复SSH会话的环境变量加载问题
    有时候本地登录会加载~/.bashrc或~/.zshrc(比如你在里面配置了虚拟环境自动激活或者PATH路径),但SSH的非交互式会话默认不会加载这些文件。你可以:

    1. 把环境配置移到~/.bash_profile(bash用户)或~/.zprofile(zsh用户)里,SSH登录时会自动加载这些文件;
    2. 或者在SSH命令里手动激活环境再运行测试:
      ssh user@server.com "source ~/my_venv/bin/activate && py.test -s -v jupyter_test.py"
      
  • 检查pytest的归属
    执行which py.test对比本地和SSH的输出,如果SSH里的pytest是系统级的(比如/usr/bin/py.test),那它会调用系统Python,自然找不到虚拟环境里的pandas。用前面说的python -m pytest就能避开这个问题,因为它会用当前Python环境对应的pytest版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:21:20