VS Code配置多Python版本运行环境

正儿八经开始使用的第一个编辑器就是VS Code,所以基本没怎么用过Sublime,比较是无从谈起,不过VS Code用起来真是顺手啊。配置好的话,直接在VS Code里面进行Python开发、调试,完全不是问题。
不过使用Python难免需要用到多个Python版本,讲一下如何在VS Code中进行配置。

系统中Python多版本管理

之前一直用Anaconda,直接用conda创建并管理多版本Python。最近用着总出现一些莫名其妙的问题,于是卸载了直接换回了官方“纯净版”。
在默认使用Python3.5的情况下,系统中环境变量指向Python3.5,同时在(假如)“C:\Python27”目录下装有Python2.7。可以在Python3.5的根目录中创建名为py2.bat的文件,文件内容:

@ echo off
C:\Python27\Python.exe %*

这样直接在命令行中输入py2就可以使用Python2.7开发环境,输入Python则是默认的Python3.5开发环境。文件名称py2可以更换成个人习惯的名称,命令行中输入相应名称即可(参考 ART^{9} 的[一篇文章][1])。

安装第三方库的话,以下命令安装到默认Python开发环境:

pip install somelib

安装到Python2开发环境:

py2 -m pip install somelib

VS Code配置Python开发环境

使用VS Code打开一个文件夹,这个文件夹在VS Code中便是一个工作空间。VS Code会在文件夹中自动创建一个.vscode文件夹,里面是一些配置文件。

VS code setting

.vscode中有一个tasks.json文件,这个文件就是进行配置运行环境的,最简单和常用的配置为(参考 xin053 的[一篇文章][2]):

{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "args": ["${file}"],
    "showOutput": "always"
}

其中commandpython可执行文件的路径,在添加的系统环境变量中之后可以直接写python,否则需要给出完整路径。args就是command运行的参数,即当前文件。
在安装上述方法配置了Python双版本运行环境后,对tasks.json进行简单修改就可以了:

{
    "version": "0.1.0",
    // 在Linux和Mac系统中使用"sh".
    "command": "cmd",
    "isShellCommand": true,
    // global args
    // 在Linux和Mac系统中使用"-c"(注意大小写).
    "args": ["/C"],
    "showOutput": "always",
    "suppressTaskName": false,
    "tasks": [
        {
            "taskName": "py2",
            // task args
            "args": ["${file}"],
        },
        {
            "taskName": "python",
            "args": ["${file}"]
        }
    ]
}

注意suppressTaskName属性,VS Code官网上的解释为:

If suppressTaskName is true, the command line is command 'global args' 'task args'.
If suppressTaskName is false, it is command 'global args' taskName 'task args'.

也就是说,当把suppressTaskName = false的时候,taskName属性也被当做command line的参数传入了。因此,当选择不同的task的时候,相当于在命令行(或终端)中执行了相应的py2 file.pypython file.py。效果相当棒。
F1输入run task,选择py2

Run task
Choose task

扯淡

在VS Code中有这种配置Python多版本运行环境的需求应该不多吧……
一般进行项目开发,要么Python2要么Python3,很少没事在Python2、Python3之间切换。我是偶然间瞎折腾才有了这么个需求……(⊙ˍ⊙)


版权声明:[署名-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN)][3]
发表日期:2016年12月29日
[1]: http://xiaoyc.com/multi-version-solution-of-python-on-windows/
[2]: https://xin053.github.io/2016/06/11/VS%20Code%E6%90%AD%E5%BB%BAPython%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/
[3]: https://creativecommons.org/licenses/by-nc-sa/3.0/cn/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容