Vscode上写python的技巧
Vscode上写python的技巧
vscode对python的支持一直在跟进,目前已经可以直接使用 jupyter, python, pylance 这三个插件做到较好的支持,这篇博客主要介绍了之前的一些安装方式。
引子
因为cs225是基于python讲数据结构和算法的,作业又都是小组作业。于是就需要一个python的多人工作流。
需要说的是,我们这里只是个人或者小工作量的合作,需要的是快速,便捷,轻量,所以选择vscode。对于更大的工程,pycharm等IDE会是更好用的
本文默认读者python和jupyter的使用,并对vscode有一定了解,同时能够独立自主的安装所需的插件
目录
@[toc]
1. vscode相关插件的安装
1.1 python 插件
在vscode插件商店搜索 python
,安装官方(作者为Microsoft)的插件,等待安装完成。如果在wsl工作区工作,则在wsl的插件栏中,点击 install on WSL
,安装完成后重新加载即可。
2020.7.11 update 这段时间又有一些更新:
指定工作区缓存文件夹:
vscode设置中,将python cache folder path设置为
.vscode/python_cache
并且在工作区的.vscode 文件夹中,新建python_cache文件夹,重启就能用这样可以加速换工作区时重新分析(电脑A转移到电脑B,可直接复制工作区并上手)
关于长时间下载python language server的解决方法:
- 在输出面板查看python language server(或者anaconda pack)的输出,找到下载的地址
- 使用自己的下载器下载(例如IDM),得到
Python-Language-Server-win-x64.0.5.51.nupkg
- 重命名为
.zip
文件后,用解压软件,解压到C:\Users\51284\.vscode\extensions\ms-python.python-2020.6.91350\languageserver.0.5.51\
文件夹中 - 重启vscode就能使用
1.2 git 相关插件
vscode自带git的版本管理, add,commit,pull,push
都有图形化界面。但是我强烈推荐在安装一个 Gitlens
,在多人合作中能大大提高git的效率。具体使用后文会提到。
1.3 Jupyter client
后续将会使用到jupyter client的功能,所以要在选用的python解释器环境中安装jupyter库。简单的说就是需要 pip install jupyter
或者用anaconda安装jupyter
2. python文件概述
2.1 传统的.py文件
vscode作为主流的文本编辑器,对python文件的支持还是很好的,代码高亮和定义快速查看都有。
- 按住
ctrl
鼠标单击函数或者类,会跳转到定义的位置。 - 按住
ctrl
鼠标悬停在函数或者类上方,会出现定义上下文的小窗,即览即走。 - 光标在函数或者类名中,按下
F12
会出现代码行内嵌的小窗,以供预览定义处的上下文。
当然调试的支持也很好。按下 F5
选择 “Python File” 就可以进入ui界面调试。会在出现错误的地方直接停下报错,不会等到把调用栈清空才traceback。
2.2 jupyter的.ipynb文件
在vscode 1.4.x 版本(可能记错)中,增减了对jupyter的支持。其一是支持调用jupyter终端打开.ipynb文件。但有一说一,这个功能相当辣鸡🐔。很多jupyter notebook有的功能他都没。罪状系数如下:
- 不能保持多个cell的编辑状态,写markdown的cell简直逼疯人
- 不能复制cell
- 经常莫名其妙的跳到最后一个cell
不过好在vscode天下第一文本编辑器不是吹的,.ipynb文件支持不好,但是jupyter client对.py文件的支持完美的填补了这个漏洞。
3. jupyter client对.py文件的支持(重点)
这是vscode对python爱的体现,是最神仙的功能没有之一。
1.4.x版本中,另一个更新获得了我如上评价。为什么这么说呢?因为vscode通过这个功能,让普通的.py文件,能够像jupyter文件一样分块运行,而且支持markdown语法。具体实现如下:
3.1 python code as jupyter cells
- 在普通的.py文件中,vscode增加了标识符
#%%
。当文件中出现#%%
, 就把其后至下一个#%%
中的代码视为一个cell里的内容。同时因为是#
开头,.py文件正常运行会当作注释忽略。 - 在每个
#%%
上方会出现三个选项Run Cell | Run Above | Debug Cell
单击任一能实现和jupyter notebook 一样的效果。Run Cell时,界面右边会出现jupyter的终端,代码就可以分步执行。 - 在设置中(快捷键
ctrl + ,
),搜索python enter
,将 ”Python › Data Science: Send Selection To Interactive Window“ 打上勾后,可以在.py文件中通过按shift + enter
来执行Run Cell
,更加快捷。 - 这里debug功能虽然可以逐步进入,但是报错要在全部运行之后才能出现(不是在error产生的地方)所以如果有error出现,还是建议用
F5
来调试。 - 右边的jupyter终端支持jupyter notebook的功能,在最上的图标功能栏中,依次是:清除所有输出(保存当前变量),重做,撤销,强制停止当前cell,重启jupyter终端(清除所有变量),查看内部变量,当前输出导出为.ipynb文件,展开所有cell。【加黑这几个功能真是爱了爱了】
3.2 markdown
- 同时如果在 #%% 后加 [markdown] 即
#%% [markdown]
,vscode将把这个cell是为markdown cell,其中支持所有markdown语法。需要注意的是,这些markdown内容需要在开头加上额外的#
,这样才能不被当作是python代码误执行。
3.3 .py file → .ipynb file
- vscode除了能够在右边的jupyter client导出为ipynb之外,也可以直接导出:资源管理器,编辑窗口空白处,
ctrl+shift+p
调出的命令行都可以找到export as Jupyter Notebook的选项。

.py文件在jupyter终端的工作区快照
4. git支持
你问我支持不支持啊,那我一定是支持的!——他
先占个坑,Gitlens也是神仙插件,具体使用直接看插件页面说明。后期有空填坑