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。离谱。之前还没这个问题的。我也不知道怎么改,我就又点击了运行,然后没有报错了。。。

相关推荐
2601_962381865 分钟前
python安装好了如何设置环境变量
python·开发工具·环境变量·虚拟环境·ide配置
小柯南敲键盘15 分钟前
跨马翻译:跨境电商图片翻译工具,批量处理视频字幕与抠图
python·音视频
Hali_Botebie21 分钟前
PyTorch 内存布局,.view()要合并哪两个维度(比如 B 和 G),这两个维度在内存里就必须“紧挨着”。
人工智能·pytorch·python
天天喝旺仔25 分钟前
AI 编程实战:用 Cursor + Claude Code + Copilot 把效率翻倍
ide·chatgpt·prompt·copilot·ai编程
用户019027581611 小时前
如何用 Python 算多只股票的相关性矩阵与组合波动率?
python
IvanCodes1 小时前
Python 基础语法(三):条件判断与分支结构
python
用户0332126663671 小时前
快速合并 Word 文档【Python 指南】
python
威联通网络存储1 小时前
TS-h987XU-RP 在化工制造批次数据场景的部署
python·制造
m0_547486661 小时前
《Python爬虫大数据采集与挖掘》全套PPT课件2026
爬虫·python·powerpoint
captain3761 小时前
网络编程(1)
java·网络·ide·java-ee