本文涉及的主要程序有 Python 3.6, VS Code 1.33.1 。
我自己平时开发都是用的 VS Code,不管是 Python 、前端还是 Java 都用 VS Code。或许 VS Code 在某些方面功能没有专业做某一个语言的 IDE 完善,但 VS Code 完全可以满足我日常的开发需求。而且不同的语言可以有统一的体验,语言间的切换顺畅。同时 VS Code 很轻量级,运行一般速度也比较快。不过必须承认的是,在使用的过程中遇到了不少坑,曾经甚至影响了开发,还好最后大部分都解决了。所以我准备把使用 VS Code 的一些经验写下来,希望能安利更多人用 VS Code,也让人少绕点弯路。
VS Code 核心是文本编辑器,使用 Python 拓展包可以使其成为一个 IDE。它提供了自动补全、智能感知、静态检查、调试和单元测试等功能,以及在Python环境之间轻松切换的能力。
本文通过一个 hello world 例子展示如何在 VS code 中配置 Python 环境以及编写代码。
参考阅读:Python in Visual Studio Code
1、VS Code 基本的安装使用
下载地址:Download Visual Studio Code
下载好后打开的界面是这样的,如果是英文界面,打开拓展,搜索 Chinese,安装简中拓展包,重启 VS Code 界面就会变中文。
建立文件夹 ./python/hello,然后打开 VS Code。不管页面上的其他内容,先聚焦图中的红框区域,打开新建的文件夹 hello,新建文件 hello.py。
2、Python 拓展
写代码之前,要先安装 Python 拓展。在侧边栏的拓展栏里搜索 Python,安装有星标的拓展。
完成后左下角会出现你的电脑上安装的 Python 版本(下载 Python),这是 VS Code 默认使用的 Python 版本。
然后写入这句代码print('Hello World!')
,如果你是手打的,可以发现这时有代码补全和智能提示了。
VS Code 中运行代码的方式有多种,比如直接右键运行当前文件,这会打开终端并运行。不过这个方法只适用于启动文件,不常用:
实际上大部分运行 Python 的操作都是在集成终端(Ctrl + `)里完成的,我用的 win10 所以默认打开的是 Power Shell :
3、虚拟环境
接下来创建虚拟环境,如果无法运行 activate.ps1,设置 Power Shell 允许执行该脚本即可。
pip install virtualenv
virtualenv venv
./venv/Scripts/activate.ps1
python hello.py
我们在终端中可以使用虚拟环境,但是 VS Code 的 Python 拓展还在用默认的 Python 解释器。点击左下角切换到现在的虚拟环境,VS Code 会在目录下新建 .vscode/settings.json 文件,这是工作文件夹的配置文件,仅在该文件夹下生效。python.pythonPath
选项指定了 Python 解释器的位置,我们可以手动修改为别的虚拟环境以及不同版本的 Python,如果想在某些项目中用 Python2,那只需要修改 python.pythonPath
指向 Python2 的位置即可。
PS:这个设置文件很重要,可以帮我们定制自己的开发环境,更多设置请看 Python settings reference。
应该大部分人这时都在右下角弹出了错误提示,VS Code 默认用 pylint 做静态代码检查,这个之后会在另一篇文章里详解。
4、工作区
上文演示了如何在 VS Code 里编写一个简单的项目,但一个工作文件夹里只有一个 settings.json 会生效,只能配置一套开发环境。如果我有多个项目要在同一个窗口中编写,而且要用不同虚拟环境,这时候就需要用到"工作区(workspace)"了。
右键点击添加到工作区,然后创建虚拟环境virtualenv e-venv
,为了区分另一个环境,这里命名为 e-venv 。然后新建 .vscode/setting.json 文件,将 pythonPath 改为 e-venv 的位置,于是环境就区分好了。另外,工作区可以保存,可以方便的切换到不同的工作区。
5、配置
在左上角点击 文件 > 首选项 > 设置,打开设置,VS Code 分别有用户设置,工作区设置和文件夹设置。有些时候如果发现一些功能不起作用,依次检查这几个设置文件,看看是不是把对应的选项关掉了。我之前有一段时间 pylint 不能运行,代码提示也一团糟,后来才发现我在用户设置里关掉了 jedi ,jedi 是 IntelliSense 引擎,关闭这个选项后使用的是 Microsoft Python Language Server ,结果后者就是个残废。当时弄得我很多功能都不能正常使用,差点就抛弃 VS Code 了。一般不去动配置文件也不会出现啥问题,但为了优化体验,我们会经常去进行配置,所以一定要注意,不要忘了自己配置了些什么。
以上是 VS Code 基础的使用,但是实际开发时这点功能远远不够,经常会碰上各种问题,比如静态检查报错,代码无法跳转,缺少代码提示,以及启动调试失败等问题。虽然我们可以只用终端照样可以跑代码,不用那些功能就行,但这样 VS Code 就真的只是一个编辑器而已,失去了 IDE 带来的强大特性。之后我会陆续更新其他文章,聊聊如何调教好 VS Code。