【问题标题】:How to run Python scripts in cmd using sublime build system (Sublime Text)?如何使用 sublime 构建系统(Sublime Text)在 cmd 中运行 Python 脚本?
【发布时间】:2021-10-31 22:48:03
【问题描述】:

我正在尝试通过 sublime 构建系统 (Sublime Text) 运行 python scripts。我想构建启动终端,执行程序并等待按任意键。

{
    "shell_cmd": "start cmd.exe @cmd /c python -u \"$file\" && echo. && pause",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.python",
    "shell": "true"
}

上面的代码会执行,但即使添加了pause,它也会在完成后立即终止。使用/k 终端保持在屏幕上,但我们手动关闭它而不是按任何键。

如何配置 shell 脚本,使其在终端中运行代码并在按下某个键时结束。

【问题讨论】:

  • 为什么要从 cmd shell 中的另一个 cmd 实例打开一个 cmd 实例?为什么不只是"@start python -u \"$file\" & echo. & pause"
  • @Compo sublime 构建系统不允许输入只是输出。另外,我不想使用文件作为输入。我想接受用户输入,所以我正在打开 cmd. shell_cmd 正在打开 cmd 只是 cmd 实例。顺便说一句,我试过你的命令仍然暂停。
  • 我不知道这对我的评论意味着什么。您的问题表明它没有暂停,尽管您使用了 pause 命令,但您上面的评论抱怨它正在暂停。现在,除非我无法理解这项任务的基本机制,否则在我看来它似乎已经奏效了。请尝试正确解释您尝试执行的任务,执行时究竟发生了什么,您希望发生什么,为什么您抱怨不想使用文件,当您发布使用文件的命令,用户输入如何相关
  • @Compo,抱歉我不清楚。 Sublime Text 提供构建系统以允许用户运行外部程序。构建系统的常见用途示例包括:编译、转译、linting 和执行测试。构建系统通过 JSON 指定并保存在扩展名为 .sublime-build 的文件中。以下是构建系统的基本示例。此构建系统将执行当前打开的 Python 文件。 "cmd": ["python", "$file"]。执行的输出将显示在 Sublime 的底部;如果在 python 文件中有输入,我们不能通过这个构建系统。
  • 如果"cmd": ["python", "$file"]在cmd中执行python文件,那你为什么用"shell_cmd": "start cmd.exe @cmd /c python -u \"$file\""。当您使用"cmd":"shell_cmd": 打开shell 时,即cmd.exe。因此,一旦打开,您将使用内置的cmd.exe 命令start 启动第二个cmd.exe 会话,并传递参数@cmd /c python -u "$file"。因此调用第三个 cmd.exe 命令并传递以下参数 python -u "$file。你明白我现在的意思了吗?您似乎正在运行三个 cmd.exe 实例,只是为了运行 python 脚本!

标签: python cmd sublimetext3 build-system


【解决方案1】:

python -i 工作正常。

{
    "shell_cmd": "start cmd.exe /c python -i \"$file\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.python",
    "shell": "true"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    相关资源
    最近更新 更多