liunx系统下vscode终端python版本和xshell终端python版本不对应

问题遇到的现象和发生背景

最近遇到了一个问题:vscode上终端的python版本和xshell终端上python版本不对应。

报错内容

img

最近打算用vscode远程连接服务器进行调试代码,当在终端进入虚拟环境的时候发现显示的python是Linux默认的python版本(2.7),而不是anaconda的python版本(之前已经装过anaconda)。输入命令which python显示的也是liunx默认的python路径。

img

这时候我使用xshell连接服务器,输入命令which python显示的是anaconda的python路径,输入命令python显示的也是anaconda默认的python版本(3.7.6)。

img

接下来我进入到名为tracking的虚拟环境(python版本为3.6.2)中,发现vscode终端中显示的python也仍为linux默认的python(2.7)

img

而在xshell终端中的进入tracking虚拟环境显示的python版本则是正常的

我的解答思路和尝试过的方法

后来在网上看到了这样的链接https://blog.csdn.net/weixin_43659913/article/details/103830210。这个链接适用于Macos系统,而不适用于liunx系统。后来我仿照这个链接,在setting.json文件中添加了如下语句:

"terminal.integrated.env.linux": {
        "PATH": ""
    }

结果并没有解决问题

我想要达到的结果

个人感觉服务器端是没有问题的,否则用xshell终端显示的python版本也是不对的。应该是vscode设置的问题,但具体怎么改自己现在没有头绪。

vscode里用python,应该要将你的路径,添加的vscode的PATH配置里,而不是把PATH改为空

"terminal.integrated.env.linux": {
        "PATH": ""
}

改为

"terminal.integrated.env.linux": {
        "PATH": "/home/xxxx/anaconda3/bin:${env:PATH}"
}

路径改为实际的路径

这个情况很正常:系统服务只关心关键版号,满足要求的版序会被系统自动标记为特定版号,而不是显示其真实版号,这样系统处理相关问题会比较简化;vsCode则是从系统服务获取相关信息。
类似的情况是:Java只提供3个版号的服务,可能也会遇到类似情况。