Sublime Text 3的构建系统问题 - 无法从正在运行的程序中获取输入

Roo*_*ook 13 python cmd windows-7 sublimetext3

我正在尝试使用Sublime Text 3(构建3049,如果这很重要)来运行Python脚本.一个简单的两个班轮

var = raw_input("Enter something: ")
print "You entered ", var
Run Code Online (Sandbox Code Playgroud)

请求输入,等待它,然后在Windows控制台提示符下打印出来.

这就是,看到侧面出现类似问题的数量,这对很多用户来说都是一个问题,所以我经历了那些尝试过的东西.制作了exec.py文件的副本,注释了一行,制作了一个新的pythonw构建文件,试图弄乱构建文件......似乎没什么用.

缺乏明确的解决方案,你如何使用Sublime Text 3使用Python?

Mat*_*DMo 24

首先,因为你正在使用开发版,你必须是一个注册用户(好!)我建议升级到3053,这是最新版本,因为在修复已知问题方面,新版本往往更好.其次,仅供参考,docs.sublimetext.info上有一套相当完整的(非官方)文档.它们组织良好,相当新,并且比sublimetext.com上的"官方"版本更多.最后,为了回应您的评论,Sublime附带了一个内置的Python的精简版本.ST2有2.6,而ST3有3.3,所以如果你编写插件,你需要符合那些语言规范.您可以通过点击从控制台运行任意命令Ctrl`.

正如几个SO问题中所述,Sublime Text本身无法通过raw_input()或处理输入input().其他语言也是如此 - Ruby gets,Java Scanner类,Node readline类等.最简单的短期解决方案是获取Package Control(如果您还没有),然后安装SublimeREPL.它允许您通过运行REPL传输或运行部分或全部代码(您需要先启动一个代码).

如果您正在运行的代码与SublimeREPL不兼容(例如,您正在使用C/C++/Java /等,并且需要在运行之前编译代码),或者您只是想独立于Sublime运行它,你需要制作自己的构建系统.将以下内容另存为Packages/User/Python_cmd.sublime-build:

{
    "cmd": ["start", "cmd", "/k", "c:/python27/python.exe", "$file"],
    "selector": "source.python",
    "shell": true,
    "working_dir": "$file_dir"
}
Run Code Online (Sandbox Code Playgroud)

根据需要更改Python可执行文件的路径.然后,转到Tools -> Build System并选择Python_cmd,当您点击CtrlB构建时,cmd将打开一个新窗口,文件正在运行./k程序运行完毕后,该选项将返回到命令提示符,而不关闭窗口,以便您可以检查输出,回溯等.