从ST编辑器运行时,如何在控制台中显示python脚本的结果?

从ST编辑器运行时,如何在控制台中显示python脚本的结果?,python,windows-7,sublimetext,sublimetext3,build-system,Python,Windows 7,Sublimetext,Sublimetext3,Build System,我是新的崇高文本,所以我不熟悉它的内部迄今为止。据我所知,这个问题可能与某些方面有关 我有一个python脚本 var = raw_input("Enter something: ") print "You entered ", var 它请求输入,等待输入,然后在windows控制台提示符中打印输出 如何在“构建”时制作ST3以在控制台窗口中显示结果?for是SublimiteText的插件 它不打开cmd实例,但可以为您提供一个REPL,您可以在其中提供输入,而在默认控制台上通常无法提供输

我是新的崇高文本,所以我不熟悉它的内部迄今为止。据我所知,这个问题可能与某些方面有关

我有一个python脚本

var = raw_input("Enter something: ")
print "You entered ", var
它请求输入,等待输入,然后在windows控制台提示符中打印输出

如何在“构建”时制作ST3以在控制台窗口中显示结果?

for是SublimiteText的插件

它不打开cmd实例,但可以为您提供一个REPL,您可以在其中提供输入,而在默认控制台上通常无法提供输入

安装

Install Package Control. http://wbond.net/sublime_packages/package_control
Install SublimeREPL
    Preferences | Package Control | Package Control: Install Package
    Choose SublimeREPL
Restart SublimeText2
Configure SublimeREPL (default settings in Preferences | Package Settings |
SublimeREPL | Settings - Default should be modified in Preferences |
Package Settings |SublimeREPL | Settings - User,
this way they will survive package upgrades!
文档中的注释

ctrl+,f表示:按ctrl和逗号,全部释放,按f.

上面的keybinding用于在REPL中进行计算

如果SublimateText提示找不到“语言”的REPL,则需要通过打开REPL

Tools | SublimeREPL | Language

我希望这能有所帮助

这其实非常简单,但要把各个部分连接起来需要大量的挖掘工作。我首先想到了一种使用批处理文件的更为迂回的方法,但经过更多思考后,我将其全部放在了一个单一的Sublime构建系统中

捷径 以下几点效果不错:

{
“cmd”:[“start”、“cmd”、“/k”、“c:/python27/python.exe”、“-u”、“$file”],
“选择器”:“source.python”,
“壳”:没错,
“工作目录”:“$file\u dir”
}
将其另存为
Packages/User/Python\u cmd.sublime build
,选择
Tools->build System->Python\u cmd
,然后使用CtrlB进行构建

start
言行一致,开始一个独立于崇高文本的新过程
cmd
是Windows命令行解释器
cmd.exe
。程序运行后,
/k
标志保持窗口打开(在新命令提示下),允许您检查其输出、查看回溯、运行其他命令等。如果您不需要该功能,请将其更改为
/c
(如下所示),程序运行完成后,
cmd
窗口将关闭

我已经在XP和Win7上测试了它,在ST2和ST3上都测试过了,它在所有的机器上都运行得很好,不需要修改


我最初的解决办法是:

首先,创建
run_python.bat
并将其存储在
Packages/User
目录中(可从
Preferences->Browse Packages…
菜单选项访问):

显然,如果路径与您的不同,请将其调整为
python.exe
。接下来,使用以下内容创建
Packages/User/Python\u cmd.sublime build

{
“cmd”:[“start”、“cmd”、“/c”、“run_python.bat”、“$file”],
“选择器”:“source.python”,
“壳”:没错,
“工作目录”:“$packages/User”
}
保存它,选择
Tools->buildsystem->Python\u cmd
,切换到上面的Python程序,点击CtrlB,我的朋友,你就可以开始了。如果希望
cmd.exe
窗口保持打开状态以在提示下输入更多命令,请将
/c
更改为
/k
。我还没有用任何GUI测试过这一点,但是假设您现在可以从命令行启动它们,它们应该可以使用这一点


我已经在XP上测试过了,所以它也可以在Win7上使用。它还应该适用于Sublime Text 2。

只需发出一个命令来启动一个新的
cmd.exe
,就非常简单了

start cmd /K python main.py
更多信息请参见(古代)

/k
标记“pipes”将其他命令发送到
cmd.exe
,并一直运行,直到您自己退出shell,这在您希望查看跟踪时非常有用

C标志“pipes”将其他命令发送到
cmd.exe
,并一直运行到python程序完成为止

因此,在项目文件中,您应该有如下内容:

"build_systems": [
    {
        "name": "RunPY",
        "cmd": ["start", "cmd", "/K", "python", "main.py"],
        "shell": true,
        "working_dir": "<project_path>"
    },

]
“构建系统”:[
{
“名称”:“RunPY”,
“cmd”:[“start”、“cmd”、“/K”、“python”、“main.py”],
“壳”:没错,
“工作目录”:”
},
]
虽然我们在Sublime中讨论了
build\u systems
,但我想推荐这个插件,它在ST3上运行正常,只是当您在项目文件中添加新的构建时,它并不总是注意到。这也意味着您必须为ST3手动安装插件


有了这个插件,你只需按几个键就可以轻松定义和运行不同的构建。一个实时节省器。

这里是OSX的一个变体,以防它对任何人都有用:

转到工具->构建系统->新建构建系统

{
    "cmd": ["/opt/X11/bin/xterm", "-e", "python -u \"$file\""],
    "selector": "source.python"
}
您可以找到有关语法的更多详细信息

保存它(例如,在升华文本提供的目录中使用名称
mytestbuild.sublime build
),切换到Python文件,从工具->构建系统->mytestbuild中选择构建系统,然后点击cmdB

这将打开一个xterm,并在xterm窗口中运行Python代码。如果要使用Terminal.app,可能需要使用中的一个技巧。

[此解决方案显示Sublime中的输出,但显示为另一个窗格中显示的自动更新文本文件]

要使输出在Sublime中显示为另一个文件,请执行以下操作:

  • 创建新的生成系统:
    Tools>buildsystems>newbuildsystem…
  • 使用以下配置:
  • { “cmd”:[“python.exe”、“$file”、“1>”、“$file\u name.\uuuuu STDOUT\uuuuu.txt”、“2>”、“$file\u name.\uuuuuu STDERR\uuuuuuuu.txt”], “选择器”:“source.python”, “壳”:没错, “工作目录”:“$file\u dir” }
  • 对于Python文件,选择上面的构建系统配置文件:
    Tools>buildsystems>{your_new_build_system_filename}
  • ctrl+b
  • 现在,在您的文件旁边,例如,
    “file.py”
    您将有
    “文件”.\uu STDOUT\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
  • 如果将窗口拆分为3列或一个网格,您将立即看到结果,而无需重新排序
    {
        "cmd": ["/opt/X11/bin/xterm", "-e", "python -u \"$file\""],
        "selector": "source.python"
    }
    
    { "cmd": ["python.exe", "$file", "1>", "$file_name.__STDOUT__.txt", "2>", "$file_name.__STDERR__.txt"], "selector": "source.python", "shell": true, "working_dir": "$file_dir" }