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

conda环境下python可正常导入torch但pytest报ModuleNotFoundError

问题根因

出现这个问题的核心原因是执行pytest时调用的Python解释器,和你安装了PyTorch的conda环境所用的Python解释器不是同一个。
你执行python test.py能正常运行,是因为激活conda环境后,终端调用的python命令指向当前conda环境目录下的解释器,这个解释器的依赖包目录里已经装好了torch。但你调用的pytest并不属于当前conda环境:它可能是系统全局Python、其他conda虚拟环境里安装的包,运行时会自动绑定它所属环境的Python解释器加载依赖,自然找不到只装在目标conda环境里的torch。

你可以执行以下命令快速验证路径是否匹配:

  • 类Unix系统(Mac/Linux)执行:
    which python
    which pytest
    
  • Windows系统执行:
    where python
    where pytest
    

如果输出的pytest路径不在当前conda环境的bin(类Unix)或Scripts(Windows)目录下,就说明确实是环境串用导致的问题。

解决方法

选任意一种方案即可:

  • 最一劳永逸的方案:在当前装了PyTorch的conda环境内安装pytest
    先确认终端已经激活目标conda环境(命令行前缀显示对应环境名),再执行安装命令:
    # 用conda源安装
    conda install pytest
    # 或者用pip安装也可以
    pip install pytest
    
    安装完成后重新执行which pytest/where pytest确认路径在当前conda环境目录下,再运行pytest test.py就不会报找不到torch的错误。
  • 不想重复安装pytest的话,强制用当前环境的Python解释器调用pytest模块
    直接执行以下命令即可,这个方式会完全绕开其他环境下安装的pytest,强制使用当前python命令对应的解释器加载依赖:
    python -m pytest test.py
    
  • 如果是在VS Code等IDE内运行pytest报错
    原因是IDE选中的Python解释器没有切到你装了PyTorch的conda环境,点击IDE底部状态栏的Python版本选择项,切换到对应conda环境的解释器后,IDE会自动匹配对应环境的依赖运行pytest。

额外提醒:执行命令前先确认目标conda环境已经激活,未激活环境时终端默认使用base环境或系统全局环境,也会触发依赖找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:09:17