马春杰杰 Exit Reader Mode

Sublime运行Python时不支持input怎么办?

Sublime Text中运行包含input()函数的代码时遇到无法输入或按回车没有反应的问题,主要是因为Sublime Text的内建控制台(Build System)不支持交互式输入。这意味着,当你的程序尝试接收用户输入(如通过input()函数)时,它无法在Sublime Text的控制台中暂停并等待输入。

解决方案

有几种方法可以解决这个问题,让你能够运行需要交互输入的Python脚本:

  1. 使用外部终端运行脚本
    • 手动打开系统的终端(在macOS中是Terminal.app,在Windows中是命令提示符或PowerShell),然后直接运行脚本。例如,如果你的脚本名为script.py,你可以在终端中输入python script.py(或python3 script.py,具体取决于你的Python安装)来运行它。
  2. 配置Sublime Text以使用外部终端
    • 你可以创建或修改Sublime Text的构建系统,让其自动在外部终端中运行你的脚本。这需要写一些JSON配置,具体配置方法取决于你的操作系统。以下是一个在macOS上配置Sublime Text以使用终端运行Python脚本的例子:
      {
          "shell_cmd": "open -a Terminal.app \"$file\"",
          "selector": "source.python",
          "working_dir": "$file_path"
      }
      

      对于Windows,你可能需要创建一个批处理文件或使用类似cmd /k python \"$file\"的命令。

  3. 有一些Sublime Text插件可以提供交互式运行支持,例如Terminus插件。这些插件允许你在Sublime Text内或通过外部终端模拟器运行脚本,并支持输入。你可以通过Package Control安装这些插件。我比较推荐使用SublimeREPL。关于SublimeREPL的介绍,见:SublimeREPL使用说明-马春杰杰 (machunjie.com)