[英]Use IPython REPL in VS Code
使用 Visual Studio Code 的 Python 扩展,我可以选择一些代码,右键单击它,然后选择“在 Python 终端中运行选择/行”(或者,我可以按 Shift+Enter)。 但是,这会将所选代码发送到终端窗格中的普通旧 Python REPL,而我希望此代码在 IPython 中运行(不是 QtConsole,只是基于终端的 IPython)。
是否可以将 IPython 设置为默认 REPL? 我尝试将/usr/local/bin/ipython3
为我的默认 Python 环境,但这不起作用(它仍然执行普通的 Python 解释器)。 FWIW,我在 macOS 上。
在终端窗口中输入 Ipython。 然后从编辑器窗口中选择要运行的一行或多行,然后单击 VScode 窗口顶部的终端菜单。 终端菜单中的一个选项是“运行选定的文本”。 这将在 Ipython 终端窗口中运行。 我不知道如何将其设为默认值,但除非停止 Ipython,否则它似乎保持该状态。 注意:您必须使用菜单项运行您的选择。 在编辑器窗口中右键单击并单击“运行选择”将不会使用 Ipython 窗口。 我希望这很清楚。 如果不只是发表评论。
添加以下设置(首选项:打开设置 JSON;或首选项 -> 设置 -> 搜索launchArgs
-> 在 json 中编辑)无需任何扩展即可工作。 它还修复了无法将多行发送到 Python 的问题。
"python.terminal.launchArgs": [
"-c",
"\"import subprocess; subprocess.call(['ipython', '--no-autoindent'])\""
],
更新 (2020-12-27):以下设置似乎效果更好,因为它支持 Ctrl+C 键盘中断,而无需现有 IPython:
"python.terminal.launchArgs": [
"-m",
"IPython",
"--no-autoindent",
],
使用“IPython for VSCode”插件。
安装它,然后使用Send Select Text (or current line) To IPython
如果你想与原来使用的快捷键设置shift+enter
执行上面的命令,下面的方法使用一个。
打开快捷方式设置:Macos 它是cmd+k cmd+s
。
上面的搜索命令并右键单击以将键盘绑定修改为shift+enter
。
接下来,再次右键单击以将When expression
修改为:
editorTextFocus && !findInputFocussed && !python.datascience.ownsSelection && !replaceInputFocussed && editorLangId == 'python'
右键单击并选择show same key bindings
查找命令Python: Run Selection/Line in Python Terminal
并右键单击以禁用它。
打开快捷方式设置,点击右上角打开JSON配置
附加这些设置:
{
"key": "shift+enter",
"command": "ipython.sendSelectedToIPython",
"when": "editorTextFocus && !findInputFocussed && !python.datascience.ownsSelection && !replaceInputFocussed && editorLangId == 'python'"
},
{
"key": "shift+enter",
"command": "-python.execSelectionInTerminal",
"when": "editorTextFocus && !findInputFocussed && !python.datascience.ownsSelection && !replaceInputFocussed && editorLangId == 'python'"
}
您还可以在settings.json
"python.pythonPath"
,如下所示:
{
"python.pythonPath": "~/miniconda3/bin/ipython3",
"python.dataScience.sendSelectionToInteractiveWindow": false
}
或者
{
"python.pythonPath": "~/miniconda3/envs/<yourEnv>/bin/ipython3",
"python.dataScience.sendSelectionToInteractiveWindow": false
}
shift+enter
将触发 ipython 并将线路发送到终端。
IPython 支持由“IPython for VSCode”插件提供。
只需选择文本并在命令面板中调用“将所选文本(或当前行)发送到 IPython”。
此外,官方的 Microsoft Python 插件现在支持具有类似功能的交互式 Jupiter 窗口。
如何在 VS Code 中创建 Jupiter Notebook
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.