【问题标题】:In VS Code, can one run Python code in an integrated Python terminal like in Spyder?在 VS Code 中,可以像在 Spyder 中那样在集成的 Python 终端中运行 Python 代码吗?
【发布时间】:2019-05-25 20:56:53
【问题描述】:

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

python.exe path\myfile.py

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

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

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

【问题讨论】:

  • @UnholySheep 我知道如果我直接从 CMD 终端运行 python 代码,这是一个选项。问题是:在解决问题的情况下,如何配置 Visual Studio Code 以在启用此选项的情况下将文件发送到终端?
  • (可能)最好的方法是创建自定义启动配置:code.visualstudio.com/docs/editor/…(然后使用 F5 启动)

标签: python command-line visual-studio-code spyder


【解决方案1】:

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

您只需添加下面的设置(在settings.json 文件中)

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

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

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

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

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


顺便说一句,另一件事是:您可以在 Spyder 的集成终端中运行“单元”(代码区域为 #%%)。但在 VS Code 中似乎不能。

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

【讨论】:

  • 这个我试过了,还不错。问题是,当您尝试运行另一个文件时(在第一次运行后留下 IPython 提示符后),您会收到错误 NameError: name 'python' is not defined 并且您必须再次运行 quit。这有点令人沮丧。有没有办法使用 VS Code 设置在 IPython 提示符下使用 %run 运行文件,类似于 Spyder 的 runfile()
  • 嗨@Astro。我试图完全按照您的要求做:在 IPython 终端中运行文件,使用 VS Code,就像在 Spyder 中一样,但没有直接的方法。即便如此,我还是设法用this macro extension 做到了。我已经为您在this gist 中放置了所需的设置,其中包含宏runInIPythonTerminal 和将IPython 作为默认终端配置文件的配置。要做的重要事情是将魔术命令%run 发送到带有文件名的IPython 终端。
  • 谢谢!一定会去看看,好像真的很有帮助!
【解决方案2】:

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

【讨论】:

  • 但是你不能将代码从编辑器发送到那个终端。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2022-10-03
    • 1970-01-01
    相关资源
    最近更新 更多