如何在Sublime Text 3中在构建Python 3脚本时取消输出缓冲?我想要实时输出。
我正在使用带有Anaconda插件、Python 3.6和Linux Mint 18的Sublime Text 3。当我使用control-b运行简单的脚本时:
我会翻译成中文:
最初在“生成输出”中我得到了一个空白屏幕。过了一段时间,它就会填充几百行的输出。看起来这个输出被缓冲了。当缓冲区满时,它会一次性输出到“生成输出”屏幕上。
编辑: Sublime Text 允许自定义构建配置。默认的 Python 构建是针对 Python 2 的。我输入了一个 Python 3 的构建配置,并错过了 -u 标志。解决方法是在 Python 3 构建中加入 -u 标志。
文件:Python3.sublime-build
保存在 sublime_install/Data/Packages/User/Python3.sublime-build 中。
我正在使用带有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 标志。解决方法是在 Python 3 构建中加入 -u 标志。
文件: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 中。
stdout
和stderr
,则两者将在行的中途混合在一起。我不使用那个包;它是否指定了-u
给python
命令,告诉Python不要缓冲输出? - OdatNurd