在vscode中运行Python
电脑空间越来越少,*减少Jetbrains的IDE的个数,把一些IDE干的活交给vscode。
前置工作
-
Python解释器安装
从Python官网下载系统对应的安装包
或者使用系统对应的包管理器(例如
choco[Windows]
,apt[Ubuntu]
,brew[MacOS]
等等)。 -
从微软的vscode商城下载Python插件。
配置vscode的pythonPath
pythonPath是vscode的python运行环境,默认值是python,相当于在命令行下的默认python环境。
但问题是MacOS和部分Linux发行版自带Python2,这些系统上的默认python环境被设置为python2,你自己安装的python3被指向shell命令python3。pip和pip3则分别对应了python2和python3。
所以需要打开settings.json,在大括号里申明使用python3作为默认python环境。
"python.pythonPath": "python3",
你也可以使用更加详细的路径,比如:
"python.pythonPath": "/usr/local/bin/python3", //linux or mac
具体的python解释器路径可以在系统命令行中使用which python
或者which python3
查看。
有时候我们可能会为项目创建独立的虚拟环境,参考virtualenv,这个时候也需要把这里的路径改成虚拟环境的路径。
代码补全
Visual Studio IntelliCode插件可用于Python, TypeScript/JavaScript, Java的代码智能补全。
装完之后会问你是否要开启Microsoft Python Language Server
,请选择enable。
代码规范
必须要有一个规则来约束代码无规范而导致的风格不统一问题,养成代码洁癖的好习惯。
使用pylint
pip3(pip) install pylint
pylint有一套自己的命令行工具和python库,具体请到pylint官网学习。
没特殊需求使用vscode提供的默认配置就行。
一个地方需要注意,确保settings.json中的linting.enabled开启。一般默认是true,但如果发现自己在执行了上面步骤后没有代码规范检查,可以去settings.json中添加:
"python.linting.enabled": true,
代码段生成
这是一个非常棒的功能,支持很多代码块自动生成。
try/except/else/finally
,class
,async/...
,被集成到了vscode的自动补全中,可以尝试一下。
调试
调试非常简单,你可以选择不进行任何配置,但是这样你需要每次选择调试的模式。
在侧边栏找到运行调试图标(小虫子),然后会看到这样一个模块:
直接点Run and Debug会出现:
一般选Python File
就好了,其他的模式请参考python debugging、Django、Flask。
除此之外看第一张图下面还有一个选项 create a launch.json file
,只要配置好launch,就不需要每次调试都选择调试模式。
点击创建launch,这是系统默认生成的配置:
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
这里对一些奇怪的变量值做一下说明。
-
workspaceFolder
- vscode中打开的文件夹的路径 -
workspaceRootFolderName
- vscode中打开的文件夹的名字 -
file
- 正在打开编辑的文件的绝对路径 -
fileBasename
- 正在打开编辑的文件的名字 -
fileBasenameNoExtension
- 正在打开编辑的文件的名字(无扩展名)
这些是常用的,还有一些不常用的,less is more,先了解这么点就够了,网上其他教程一般用不到。
顺带提一些这个${}
语法,不熟悉JavaScript的可能比较迷惑,这个会计算出变量的值,然后填入字符串。json是JavaScript object notation
,本质上就是一个格式比较清晰的字符串。
Jupyter支持
vscode自带jupyter notebooks的扩展.ipynb
文件编辑器,而且比jupyter要强大许多,你有足够的理由不是用jupyter编辑ipynb。
-
智能补全比原生jupyter好。
-
支持.ipynb转换成.py文件。
-
查看内核中的变量。
jupyter虽然分块执行方便,但运行过的代码产生的变量还会保存在内核中,这会造成一些意外引用。
上一篇: Unity3D研究 GL详解