【发布时间】:2018-05-11 16:40:24
【问题描述】:
当我构建 Python 3 脚本时,如何从 Sublime Text 3 中删除输出缓冲?我想要实时输出。
我正在使用带有 Anaconda 插件、Python 3.6 和 Linux Mint 18 的 Sublime Text 3。当我使用 control-b 运行一个简单的脚本时:
print('hello')
我在名为“构建输出”的单独窗口中获得即时输出。当我使用带有重复输出的脚本时,例如:
from time import sleep
count = 0
print('starting')
while True:
print('{} hello'.format(count))
count += 1
sleep(0.5)
最初我在“构建输出”中看到一个空白屏幕。一段时间后,它填充了数百行输出。看起来输出正在被缓冲。当缓冲区已满时,它会立即将所有内容输出到“构建输出”屏幕。
编辑 Sublime Text 允许自定义构建配置。默认的 Python 构建适用于 python 2。我输入了 Python 3 的构建配置并错过了 -u 标志。解决方法是将 -u 标志放在 Python 3 构建中。
文件:Python3.sublime-build
{
"shell_cmd": "/usr/bin/env python3 -u ${file}",
"selector": "source.python",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "${file_path}",
}
保存在 sublime_install/Data/Packages/User/Python3.sublime-build 中
【问题讨论】:
-
Sublime 不会缓冲输出到面板;事实上,它是如此无缓冲,如果你同时输出到
stdout和stderr,这两者将在行的中途混合在一起。我不使用那个包;它是否将-u指定给python命令来告诉python 不要缓冲输出? -
我错过了构建配置中的 -u 标志。谢谢你的提示。将此作为答案,我会接受。 Sublime Text 允许自定义构建配置。默认 Python 构建适用于 python 2。我输入了 Python 3 的构建配置并错过了 -u 标志。
标签: python sublimetext3