Python 在 VSCode 中使用 IPython Kernel 的方法详解
本文介绍,在 VSCode 使用 IPython Kernel的设置方法,详细介绍如下所示:
要达到的效果:
只需按下 Ctrl+;
,选中的几行代码,就会自动发送到 IPython Kernel,并运行,得到结果!当然,快捷键也可以另行设置!
为什么要这么做:
首先,这种配置方式,比较轻量快速;
主要用于,增加写代码时的“互动性”,可以边写代码,边测试;例如,在写代码时候,快速测试下,一行或几行代码,看看效果;
所以,非常适合新手,边写边学习,或者,需要写个几十行代码,迅速解决问题,的情况;
另外,这种配置也比较方便 Debug 的过程,因为可以逐行运行,或者,不按顺序的运行测试任意一行代码;
基本配置:
- 安装 Python 程序
- 安装 IPython (pip install)
VSCode 插件配置:
- Python 插件 (Python 编程必备插件)
- multi-command 插件 (支持多步骤的命令)
设置方式:
1. 在 "setting.json" 中添加如下代码并保存:
"python.terminal.launchArgs": ["-m", "IPython", "--no-autoindent"], "multiCommand.commands": [ { "command": "multiCommand.executeIPython", "sequence": [ "python.execSelectionInTerminal", "workbench.action.terminal.focus", "workbench.action.terminal.scrollToBottom", {"command": "workbench.action.terminal.sendSequence", "args": { "text": "\u000D" }}, "workbench.action.focusActiveEditorGroup" ] }, ]
2. 在 "keybindings.json" 中添加如下代码并保存:
{ "key": "ctrl+;", "command": "multiCommand.executeIPython", "when": "editorTextFocus && python.datascience.featureenabled && python.datascience.ownsSelection && !findInputFocussed && !notebookEditorFocused && !replaceInputFocussed && editorLangId == 'python'" }
然后,就可以做到,按下 Ctrl+;
,直接发送选中行,到 IPython Kernel 了!
微小的不足:
就是,首次,按下 Ctrl+;
,运行代码的时候,需要切换到 Terminal 窗口,手动按下回车,才会运行代码,
之后再运行代码时,直接按 Ctrl+;
即可,代码会自动发送过去,并运行出结果,就再也不需要按回车了。
关于设置方式的解释:
如果不感兴趣设置原理,这部分,就可以跳过了,感兴趣原理的,请继续观看!
首先,"setting.json" 中,设置的第一行,是为了让,Python Interpreter 打开时,自动调出 IPython Kernel;
而,"setting.json" 中的,第二项设置,是设置的,把选中代码发送到 Kernel,并按下回车,的这一系列动作,这里需要 multi-command 插件的支持;
最后,在 "keybindings.json" 中的设置,是为了把,调用上面命令的快捷键,设置为 Ctrl+;
,如果想设置成其他快捷键,改掉 Key 后面的值就行了!
其他设置方法及互动模式 (Interactive Mode):
当然还有其他的设置方式也能达到同样的效果
- 例如,直接运行代码
from IPython import embed; embed()
,也可以立刻打开 IPython Kernel;只不过,这时候,就没有快捷键那么方便和舒服了;而且这样打开的 Kernel 都是黑白的,没有彩色; - 也可以直接使用 VSCode 的 Python 插件,自带的 Interactive Mode 和 Jupyter Notebook 的功能;这两个功能都超级好用,但若,只想快速解决个小问题,写个几十行代码的话,这两个功能稍微有点 too much 了,而且很占用屏幕的地方,不够简洁!关于这两个功能,虽然非常好,但这里就不详细介绍了!
- 所以,我还是,最喜欢,也最推荐上面的方法!
下一篇:如何使用python socket模块实现简单的文件下载