vscode选择了正确的解释器,但终端显示运行的依然为原来的python版本

一、问题描述

最近刚刚开始摸索着使用python,打算用vscode复现一个代码,结果费了九牛二虎之力配置好了环境,在vscode中竟然无法使用。具体是我在配置好环境后,点击了test.py测试环境是否有问题,然后报错no module named torchvision,但是conda list明明显示有 torchvision,我输入 import torchvision也没有报错。然后我在vscode的终端中输入python --version,发现显示的竟然是python3.5,而不是我所激活环境中的python3.8。

如图所示,在vscode右下角中选择了我新建的虚拟环境python38:

然后我在vscode终端中激活了python38,输入python --version,结果显示为python3.5:

然而我在Anconda Prompt中输入python --version时,显示的却是python3.8没错:

这是为什么呢?python3.5并不是base环境依赖的解释器,而是一个名为caffe_3.5的虚拟环境中的解释器。这里我首先将所有其他的虚拟环境均删除了,只留下了base环境和我所新建的python38环境,然后我发现vscode所使用的解释器又变为了base环境依赖的python3.7,依然不是我所选环境的python3.8。

参考链接如下:
VScode配置默认终端为Anaconda Prompt
在 VS Code 中配置终端默认使用anaconda虚拟环境的版本
【Anaconda&vscode】用Anaconda Prompt作为VSCode的默认终端
【Anaconda】详细步骤:如何使用Anaconda Prompt作为VSCode的默认终端?
python之 vscode中激活conda虚拟环境报错或者打开虚拟环境失败

二、解决方案

1. 打开vscode设置

(1)快捷键:点击ctrl+,

(2)在搜索框中输入terminal.integrated.profiles.windows

(3)点击 在settings.json 中编辑

2. 修改配置文件

打开之后我发现我的代码中有这样一行:

bash 复制代码
"python.defaultInterpreterPath": "C:\\Users\\...\\Anaconda3\\envs\\caffe_3.5\\python.exe"

这会不会是一开始python解释器选择python3.5的原因呢?

接着往下看。setting.json的默认格式如图:

按照大佬是说法,如果安装过anaconda是有"Command Prompt"的参数的。

接下来我们找到Anconda Prompt,右键选择属性,将目标里的参数复制下来,将对应的部分放进"Command Prompt"的"args"里即可。

我放了也还是不行。

3. 其他方法

我发现,我在cmd终端中可以正常激活python38,在anaconda prompt中也可以激活,只有在vscode终端中不能正常激活。

然后我按照下面的步骤操作了一遍:

(1)在VScode terminal powershell 中执行conda init后重启vscode

(2)打开电脑Windows的开始界面,然后直接搜索关键字powershell ,打开第一个Windows PowerShell:

以管理员身份运行打开,如下图,输入以下命令:

bash 复制代码
set-ExecutionPolicy RemoteSigned

然后中途会让输入y,回车确定执行命令:

然后我又在vscode中间试了一下,还是无法激活。

(3)再重启一下vscode,点击"删除"按钮,删除当前这个powershell:

然后在上方工具栏中点击"终端"--->点击"新建终端",重新再新建一个Vscode terminal powershell:

这回重新打开终端好像直接就是Anaconda Prompt了。具体我也不知道是哪一步起了作用,总之好像就是没问题了。

然后我重新测试了 test.py文件,这回错误又变成了no module named torch。离谱。之前还没这个问题的。我也不知道怎么改,我就又点击了运行,然后没有报错了。。。

相关推荐
青 春 记 忆2 小时前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
Python私教2 小时前
多个项目怎么安全合并?先适配,再切换
后端·python·架构
北斗落凡尘4 小时前
LangGraph 入门实战(12)--使用MCP
后端·python·langchain
jdksjw5 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Mike_Zhang5 小时前
使用python统计FreeSWITCH呼叫并发
python·freeswitch
SL-staff5 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
zzzzzz3107 小时前
AI 助手最危险的不是报错,而是“看起来成功”:我给工作流加了四道保险
人工智能·python
用户8356290780517 小时前
如何使用 Python 将 PowerPoint 转换为 PDF 文档
后端·python
菜冻鱼7 小时前
Python-pytorch-高级技巧
开发语言·人工智能·pytorch·python·深度学习·神经网络·聚类
lpfasd1237 小时前
python webview打包版卡死、开发版正常
开发语言·python