在 VS Code 中,是否可以像在 Spyder 中一样在集成的 Python 终端中运行 Python 代码?

In VS Code, can one run Python code in an integrated Python terminal like in Spyder?

提问人:blipblop 提问时间:12/28/2018 更新时间:4/29/2020 访问量:3495

问:

目前,在 Visual Studio Code(在 Windows 10 64 位下)中,在一个名为 的 Python 文件中,如果用鼠标右键单击上下文菜单,然后选择“在终端中运行 Python 文件”,则会打开一个集成的 CMD 终端,并且文件会自动在那里运行:path\myfile.py

python.exe path\myfile.py

文件停止运行后,一个自然会留在集成的 CMD 光标处。

例如,这种行为与Spyder等IDE的行为完全不同。在那里,当您运行代码(例如 with ),最后仍然停留在 Python 光标上,可以访问运行代码时创建的变量的内容。F5

有没有办法在 Visual Studio Code 中实现类似的行为?

python 命令行 visual-studio-code spyder

评论

0赞 UnholySheep 12/28/2018
使用命令行选项 docs.python.org/3/using/cmdline.html#cmdoption-i-i
0赞 blipblop 12/28/2018
@UnholySheep 如果我直接从 CMD 终端运行 python 代码,我知道这是一个选项。问题是:如果解决了问题,如何配置Visual Studio Code以在启用此类选项的情况下将文件发送到终端?
0赞 UnholySheep 12/28/2018
(可能)最好的方法是创建一个自定义启动配置:code.visualstudio.com/docs/editor/... (然后使用F5)

答:

-2赞 Natsfan 1/1/2019 #1

是的。打开一个终端窗口,它就像您计算机上的终端窗口一样。您可以键入,python脚本将像从命令行一样执行。python filepathandname

评论

0赞 blipblop 1/2/2019
但是,您无法将代码从编辑器发送到该终端。
0赞 Brett Cannon 1/4/2019 #2

最接近的方法是在调试器下运行代码,并在末尾设置断点以暂停退出执行。否则,请随时向 https://github.com/microsoft/vscode-python 提交功能请求。

3赞 Diogo 4/26/2020 #3

可以将 VS Code Python 扩展配置为使用命令行选项
https://docs.python.org/3/using/cmdline.html#cmdoption-i 中所述
-i

您只需要在下面添加设置(内部文件)settings.json

"python.terminal.launchArgs": ["-i"],

这将执行命令 。
我不知道这是否是一项新功能,但我已经使用它一段时间了。
python.exe -i path\myfile.py

如果您想使用终端IPython,就像在Spyder中一样,您可以使用一组不同的选项,如下所示:

"python.terminal.launchArgs": ["-m","IPython","-i"],

有了这些,VS Code 将执行命令 .
然后,它将作为“脚本”(带选项)运行模块,该脚本将使用选项,即 IPython 将运行文件并保持打开状态。
python.exe -m IPython -i path\myfile.pyIPython-m-i path\myfile.py


顺便说一句,另一件事是:您可以在 Spyder 的集成终端(带有 .但在 VS Code 中,您似乎不能。#%%

我提出了一个“解决方法”的问题,可以在 VS Code 集成终端中运行 Python 文件的单元格,该单元格发布在这里

评论

0赞 AstroTeen 9/18/2021
我试过了这个,它很好。问题是,当您尝试运行另一个文件时(在第一次运行留下 IPython 提示符之后),您会收到错误,并且必须再次运行。这有点令人沮丧。有没有办法,使用 VS Code 设置,使用 ,在 IPython 提示符下运行文件,类似于 Spyder 的NameError: name 'python' is not definedquit%runrunfile()
1赞 Diogo 9/20/2021
嗨,@Astro。我试图完全按照您的要求去做:使用 VS Code 在 IPython 终端中运行文件,就像在 Spyder 中一样,但没有直接的方法。即便如此,我还是设法用这个宏扩展做到了。我已将所需的设置放在此要点中,其中包含将 IPython 作为默认终端配置文件的宏和配置。要做的重要事情是将魔术发送到带有文件名的 IPython 终端。runInIPythonTerminal%run
0赞 AstroTeen 9/21/2021
谢谢!一定会去看看,看来真的很有帮助!