【问题标题】:Sublime Text 3 Python 3 print while runningSublime Text 3 Python 3 在运行时打印
【发布时间】:2015-12-15 14:27:25
【问题描述】:

在 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 个“测试”。

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

【问题讨论】:

    标签: python-3.x sublimetext3


    【解决方案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 脚本的输出将在运行时正确显示到 Sublime Text 中。

    【讨论】:

      猜你喜欢
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 2019-03-15
      • 2015-05-17
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多