运行

时间:2015-12-15 14:27:26

标签: python-3.x sublimetext3

在Sublime Text中运行脚本时,我无法让Python 3打印出来。我可以在脚本完成后打印出来,但我需要它来打印。

这是一些示例代码

import time

    for x in range(10):
        print("Test")
        time.sleep(1)

使用Python 3作为构建系统,我什么也得不到10秒,然后一次打印10个“测试”。

如果我使用Python 2构建系统运行相同的脚本,我会每秒打印1个“测试”,这就是我想要的。

同样,如果我在终端中使用“python3 script.py”运行脚本,我会每秒打印出1“Test”。

有谁能告诉我如何让Sublime Text 3中的构建系统在运行时打印出Python 3?

1 个答案:

答案 0 :(得分:1)

您必须打开Python 3构建系统配置文件,并确保将-u选项提供给要执行的命令行。

例如:

# ~/.config/sublime-text-3/Packages/User/Python3.sublime-build
{
    "cmd": ["/usr/bin/python3.5", "-u", "$file"],
    "selector": "source.python",
    "file_regex": "file \"(...*?)\", line ([0-9]+)"
}

引用the documentation

  

-u

     

强制stdout和stderr流的二进制层(即   可用作缓冲区属性)无缓冲。文本I / O.   如果写入控制台,则图层仍将是行缓冲的,或者   如果重定向到非交互式文件,则阻止缓冲。

使用此选项,您的Python脚本的ouptut将在运行时正确显示到Sublime Text。