以前在设置vscode中的Python解释器时都是采用图形化选择的方式来进行的,但是不知怎么的最近这个vscode在手动选择解释器时会出现时而好用时而不好用的情况,因此这里又给出了一种通过设置workspace下launch.json的方式。

说明一下本文假设vscode已经成功安装,系统中已经有了多个Python解释器,并且vscode中已经安装好Python的插件。

第一种,图形化设置Python解释器的方法

===========================================

第二种,通过编写 launch.json 文件来设置Python解释器的方法

以上是通过图形化界面来选择具体的Python解释器,但是发现有时候这个自动识别环境的解释器和具体设置的时候会出现问题,有的时候会出现设置不上的情况,于是不得已研究了一下配置项目launch.json文件来设置Python的解释器。

在主菜单上开始进行选择:

运行》添加配置

出现配置模式选择框,由于在vscode中会自动判定你项目的语言,由于项目中已经创建了.py文件,因此这个工作空间已经被判定为Python语言项目,因此这里我们可以看到出现的可供选择的配置模式中的Python File就是为Python语言项目提供的配置模板。

选择 Python File 配置:

可以看到在workspace空间下自动创建了.vscode文件夹,并且在 .vscode 文件夹下面自动创建了本项目的配置文件: launch.json 文件。

给出为Python项目生成的默认配置文件 launch.json 的具体内容:

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}

-----------------------------------------------------------------------------

需要注意的是这个项目空间下的launch.json文件既可以是按照上面的操作生成也可以手动在.vscode文件夹下面创建。

在上面创建的 launch.json文件中我们添加“Python”字段并设置解释器路径即可以实现Python解释器的指定,这里我个人的设置为:

"python": "/home/devil/PycharmProjects/py/bin/python",

--------------------------------

配置好后执行代码看下效果:

可以看到我们手动通过图形化界面指定的Python解释器为系统原生的,即/usr/bin/python3 ,但是这个Python环境下面并没有安装pytorch,同时我们在 launch.json 中指定了其他路径的带有pytorch的Python解释器,可以看到运行代码的时候现实pytorch是可见的。由此可知如果你同时在图形化界面中指定了Python解释器并且你还在launch.json中指定了Python解释器,那么最终vscode在执行代码时会优先使用launch.json中的Python解释器,这也是为什么如果在图形化指定Python解释器失效后我们可以通过手动编写 launch.json 文件来进行Python解释器的指定。

在launch.json中指定Python解释器的完整文件:

launch.json

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"python": "/home/devil/PycharmProjects/py/bin/python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}

=====================================

其他的事情:

虽然在上面的操作中我们通过在 launch.json 文件中指定Python解释器实现了在代码调试时优先与图形化界面中指定的Python解释器而被选择执行,但是我们如果细致的观察一下Python代码就会发现当图形化界面中指定的Python解释器不带有pytorch而launch.json中指定的Python解释器带有pytorch,虽然代码运行还是选择了launch.json中的Python解释器但是在代码编辑器中提示代码信息的Python解释器依然为图形化界面中所指定的,如下的代码中在代码编辑器中提示pytorch并不存在。

为此我们可以得到两个结论:

1. 在 launch.json 中指定Python解释器在代码执行时享有最高的权限,优于图形化界面中指定的Python解释器。

2. 不论是否在 launch.json 中指定Python解释器,在代码编辑窗口中对代码信息进行信息提示、补全等操作时所选择的Python解释器依然为图形化界面中所指定的。

=============================================

在vscode中创建 launch.json 更为简单的操作则是直接在主菜单中选择 运行和调试(也可以通过键盘操作,按键为: ctrl+shift+D),然后选择创建 launch.json 文件。

vscode中设置Python解释器的更多相关文章

  1. VScode中支持Python虚拟环境

    要在VScode中使用Python的virtualenv虚拟环境,首先在设置同添加虚拟环境所在目录和虚拟环境的识别规则: { ... "python.venvPath": &quo ...

  2. VsCode中编写python环境配置

    1. VsCode中编写python环境配置 1.1. 前言 有过开发经验都知道idea一系列的软件虽然功能比较多,但比较容易卡,电脑不好还真容易上火,这里我想要入门python,还是选了款vscod ...

  3. Windows系统中设置Python程序定时运行方法

    Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...

  4. 如何在vscode中调试python scrapy爬虫

    本文环境为 Win10 64bit+VS Code+Python3.6,步骤简单罗列下,此方法可以不用单独建一个Py入口来调用命令行 安装Python,从官网下载,过程略,这里主要注意将python目 ...

  5. 如何在sublime3项目设置中设置python模块的搜索路径?ImportError: No module named *的解决办法

    问题:之前使用pycharm,用的挺溜,但是电脑配置实在不争气,pycharm启动久了,耗去大量内存,导致运行起来越来越慢,于是转向使用sublime text. 把项目从pycharm切换到subl ...

  6. Pycharm中选择Python解释器

    新建项目后,有时候Pycharm找不到Python解释器,如果找不到的话,就会报错.报错信息: No python interpreter configured for the project 找到P ...

  7. 如何在 PyCharm 中设置 Python 代码模板

    #!/usr/bin/env python # -*- coding: utf-8 -*- # Created by iFantastic on $DATE if __name__ == '__mai ...

  8. vscode中关闭python默认自动提示

    vscode中python的默认自动代码提示工具是Jedi,我现在用的是kite.默认情况下连个自动补全工具会同时工作,提示窗口会重复出现相同的代码.以下操作可以关闭Jedi.

  9. ubuntu中设置python默认版本

    看/usr/bin中的Python文件,发现该文件是python2.7的链接文件 于是直接删掉这个软链接,然后重新创建python2.6的链接文件: 1 rm /usr/bin/python 2 ln ...

  10. 如何在Windows系统中设置Python程序定时运行

    文章出处:http://blog.csdn.net/wwy11/article/details/51100432 首先,我们肯定是要用到Windows下的[计划任务]功能 之后点击右侧的[创建基本任务 ...

随机推荐

  1. 1003 我要通过! PTA Basic Level

    我的个人博客 azoux's blog 题目 我要通过! (20 分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 ...

  2. Spring源码——AOP实现原理

    引言 Spring AOP(Aspect Orient Programming),AOP翻译过来就是面向切面编程,它体现的是一种编程思想,是对面向对象编程(OOP)的一种补充. 在实际业务开发过程中, ...

  3. 判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过

    判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过如果含有 + %符号无法判断, 否则判断不准或报错 Exception in thread "main" j ...

  4. mysql ON DUPLICATE KEY UPDATE 演示

    <e>查询:INSERT INTO member_test(mem_no,flag)VALUE('111','1') 错误代码: 1062Duplicate entry '111' for ...

  5. python根据文件目录批量过滤空行

    import shutil import os path = "E:\\in\\" #文件夹操作目录 path2 = "E:\\out\\" #文件夹输出目录 ...

  6. kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数

    场景: kettle中http post步骤如何发送http请求且传递body参数? 解决方案: http post步骤中直接设置Request entity field字段即可. 1.手边没有现成的 ...

  7. JS弱类型语言的优势——之模板字符串

    ES6中,开始支持模板字符串. 尽管Java和C#这样的高级语言有非常多吸引人的地方,但是想js这样的弱类型语言,也有独到之处. equType:有四种类型,分别是:chl.chwp.cwp.cot, ...

  8. Linux gpio子系统:gpio_direction_output 与 gpio_set_value的区别

    Linux gpio子系统:gpio_direction_output 与 gpio_set_value的区别 背景 最近改驱动程序,看到驱动代码中既有gpio_direction_output也有g ...

  9. Linux设备模型:2、基本对象 Kobject、Kset、Ktype

    原文:http://www.wowotech.net/device_model/kobject.html 作者:wowo 发布于:2014-3-7 0:25 分类:统一设备模型 前言 Kobject是 ...

  10. setsocket、getsocket 函数详解

    背景 以前用到socket的时候会调用setsocket进行设置,现在整理有关的笔记的时候,重新查阅资料发现有点奇怪,发现大家比较少使用到这个. setsocket/getsocket #includ ...