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

相关推荐
qingfeng1541516 小时前
企业微信消息监听实战:如何实时接收客户消息回调?
人工智能·python·自动化·企业微信
晚霞的不甘17 小时前
CANN Catlass 矩阵乘模板库深度解析:高性能矩阵运算的进阶之路
人工智能·python·线性代数·矩阵
ChampaignWolf17 小时前
在 Eclipse 中使用 Tabnine
java·ide·eclipse
小白学大数据17 小时前
深度探索:Python 爬虫实现豆瓣音乐全站采集
开发语言·爬虫·python·数据分析
用户67570498850217 小时前
Celery 太重了?这可能是你一直在找的 asyncio 任务队列
后端·python·消息队列
Cloud_Shy61817 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel
程序员榴莲17 小时前
网络编程入门 Python Socket 实现一个简单的用户认证系统
服务器·网络·python
知识分享小能手18 小时前
Flask入门学习教程,从入门到精通, 认识Flask路由 — 知识点详解 (2)
python·学习·flask
AI棒棒牛18 小时前
YOLO26改进创新 | 全网首发!VECA弹性核心注意力重塑全局建模,线性复杂度增强检测骨干,嘎嘎创新!
python·yolo·目标检测·yolo26·主干改进
DFT计算杂谈18 小时前
VASP新手入门: IVDW 色散修正参数
linux·运维·服务器·python·算法