VSCode内置Jupyter提示torch无has_mps属性问题咨询
问题产生原因
核心原因是VSCode内置Jupyter选中的Python内核,和你成功安装M1加速版PyTorch nightly的Python环境不匹配。
独立启动的Jupyter默认读取当前终端激活的虚拟环境(也就是你正确安装了nightly版本PyTorch的环境),所以能正常识别torch.has_mps属性。但VSCode的Jupyter插件不会自动继承终端的环境配置,默认选中的内核通常是系统全局Python、或者其他安装了旧版PyTorch/未安装PyTorch的虚拟环境,以下两种情况都会触发属性不存在的报错:
- PyTorch版本低于1.12,这类版本尚未加入MPS后端支持,本身就没有
has_mps属性 - 内核对应环境安装的不是支持M1加速的PyTorch nightly构建包,要么是普通稳定版,要么根本没装PyTorch
修复方法
- 先在能正常运行的独立Jupyter环境中执行以下代码,记录正确环境的Python解释器绝对路径:
import sys print(sys.executable)
- 回到VSCode中打开报错的notebook文件,点击页面右上角显示的当前内核名称,调出内核选择面板。
- 在可选内核列表中,选择和上一步记录的路径完全匹配的Python解释器,不要只看环境名称选,避免VSCode环境识别偏差。
- 选中正确内核后重启notebook运行时,执行验证代码确认修复:
import torch print(torch.__version__) print(torch.has_mps)
正常输出nightly版本号、True即修复完成。
*注意:如果选完内核仍报错,完全关闭VSCode后重新打开,重复内核选择步骤即可。部分情况下VSCode的Jupyter插件会缓存旧内核配置,重启后缓存会自动刷新。
内容的提问来源于stack exchange,提问作者XUEZHE REN
相关产品推荐
相关产品推荐

