问题描述

        1、命令行操作

        在本机跑实验,难免会遇到一些问题,比如把运行的虚拟环境迁移过去会遇到无法在此虚拟环境下运行程序,一个解决方法是直接把pthon解释器放在前面,也即直接给出python解释器的全名,然后空格,然后写上想要跑的python程序,即可运行,比如

/home/visionx/EXT-1/qfy/anaconda3/envs/simclr-pt/bin/python /home/visionx/EXT-1/qfy/project/SimCLR/main.py
        2、可视化页面操作 

        但是呢有时候我们可以考虑用IDE来可视化操作,这样直观来看会比较好的运行程序。注意右下角,如果之前没有连接过,在这里是很正常的,不必忧虑。有的时候不成功是因为服务器端缺乏相应的配置文件,可以在我往期博客中找到如何解决,或者直接搜索,这个还是比较简单的。

        这样第一步就需要我们选择一个解释器,也就是虚拟环境中的python所属路径,这步很简单,但需要注意的是:虚拟环境包可以放在任意位置,而并非一定要anaconda下面的envs目录中,因为可能会干扰其他虚拟环境,当然直接跑是不会影响的,而是对于管理员来说是种负担,而且用户再进行操作的时候很容易误删系统的文件而带来影响。

        3、总结一下,引出问题
        总之,可以放在任何地方!只要选择正确的路径就可以了

        上面这个步骤熟悉吧,我也很熟悉,但是呢,我选择之后在终端并没有改虚拟环境,依然是base环境,这是什么原因呢?

        和这个博主的情况是类似的:vscode没法选python解释器interpreter

原因分析及问题解决

        1、初步分析

        当你在服务器上选择了正确的虚拟环境,但在VSCode中无法正确加载虚拟环境或运行程序时,可能有几种原因:

  1. VSCode设置问题:首先,请确保你的VSCode中的设置正确配置。在VSCode中,你需要使用适当的扩展来管理Python环境,如Python或Python Extension。确保你已正确配置VSCode来使用服务器上的虚拟环境。检查VSCode中的设置,特别是Python解释器路径,以确保它指向了服务器上的虚拟环境。

  2. SSH连接问题:如果你是通过SSH连接到服务器进行开发,确保你已经建立了正确的SSH连接。VSCode有一个远程开发扩展,可以帮助你连接到远程服务器,但如果连接不稳定或存在问题,可能会导致虚拟环境无法加载。

  3. VSCode扩展问题:确保你在VSCode中安装了必要的Python扩展,如Python或Python Extension。这些扩展有助于VSCode与Python环境交互。有时,扩展可能需要更新或重新安装以解决问题。

  4. 虚拟环境路径问题:虚拟环境的路径应该是服务器上正确的路径。有时,虚拟环境可能被安装在不常见的位置,导致VSCode找不到它。

  5. VSCode版本问题:确保你的VSCode和Python扩展都是最新版本,以确保兼容性和最佳性能。

  6. 工作区问题:检查你的工作区设置,确保它们没有指定特定的Python解释器,以防止覆盖服务器上的虚拟环境设置。

  7. 网络和权限问题:确保你有足够的网络访问权限,以便VSCode能够连接到服务器并加载虚拟环境。此外,检查文件和目录权限,确保你有权限访问虚拟环境和项目文件。

        如果你仍然遇到问题,尝试在VSCode的终端中手动激活虚拟环境并运行Python,以了解是否有其他错误消息或问题。根据错误消息来调试问题,可能需要一些额外的配置或更改。

        2、进一步分析
        2.1、问题的可能性

        我遇到的情况就是第三个,所以需要对扩展Python或Python Extension进行加载,看下图

        2.2、大概找到了关键点 

         如上图大家可以看到,有“本地-已安装”和“SSH:10.26.13.32-已安装”字样,这二者是不同的,简单来说就是连服务器的时候需要用的是下面的插件,本地用的是上面的,这是两套插件,而如过你没有更新,服务器端的插件后面有一个小tag“需重新加载”

        3、找到了问题的关键,那就解决吧 

这说明你的插件并没有其作用,要重新加载一下才可以,本地和服务器端具体不同如下。

在Visual Studio Code (VSCode) 中,插件的 "本地-已安装" 和 "SSH: 10.26.13.32-已安装" 是不同类型的插件。它们之间的区别主要在于它们的用途和功能:

  1. 本地-已安装

    • "本地-已安装" 插件是指在你的本地计算机上安装的插件。这些插件用于增强本地开发环境的功能,例如代码编辑、调试、版本控制等。这些插件与你的本地代码库和项目一起工作。
  2. SSH: 10.26.13.32-已安装

    • "SSH: 10.26.13.32-已安装" 插件是远程开发插件,它允许你通过SSH连接到远程服务器,并在远程服务器上执行代码。这种插件允许你在远程服务器上运行代码、访问远程文件系统、调试远程应用程序等。在你的情况下,"SSH: 10.26.13.32" 表示你通过SSH连接到远程主机的IP地址为 10.26.13.32。

所以,关键区别在于插件类型和其连接的环境。"本地-已安装" 插件是为本地开发而设计的,而 "SSH: 10.26.13.32-已安装" 插件是用于通过SSH连接到远程服务器并在远程服务器上进行开发的插件。这两种插件都有各自的用途,根据你的工作需要选择适当的插件。

延伸阅读 

这种问题比较复杂,尝试以下方案,
(1)这个错误是由配置引起的,关闭vscode,
ctrl+H
显示配置文件,在/home/user/.config下,删除这个文件夹(里面包含错误的配置),
/home/user/.config/code
然后就可以正常配置vscode了。
(2)在launch.json中直接添加路径,

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [    
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "python": "/home/user/anaconda3/envs/torch/bin/python",
            "justMyCode": false
        }
    ]
}

(3) 修改inheritEnv设置
vscode有时会提示这么个东东,在这里插入图片描述
在GUI中配置,
在这里插入图片描述
或者,在settings.json中配置
“terminal.integrated.inheritEnv”: false,
————————————————
版权声明:本文为CSDN博主「高精度计算机视觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tanmx219/article/details/121724714        

完结撒花

        重新加载完之后就可以啦,选择解释器,在终端就可以看到

/home/visionx/EXT-1/qfy/anaconda3/envs/simclr-pt/bin/python /home/visionx/EXT-1/qfy/project/SimCLR/main.py

        这个时候就成功解决问题了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐