如何在Sublime Text 3中运行Python脚本时消除输出缓冲?
解决Sublime Text 3中Python 3脚本输出缓冲问题(Linux Mint 18环境)
我之前在Linux Mint 18上用Sublime Text 3搭配Anaconda插件跑Python 3.6脚本时,也碰到过完全一样的问题:简单的print('hello')能在Build Output窗口即时看到结果,但跑带循环和sleep的脚本时,窗口一开始是空的,等了好一会儿才一次性蹦出所有输出——这本质是Python的输出缓冲机制在搞鬼。
问题根源
Sublime Text默认的Python构建配置是针对Python 2的,而你在配置Python 3构建时,漏掉了关键的-u参数。这个参数会让Python禁用标准输出的缓冲,强制把内容即时打印到终端(也就是Sublime的Build Output窗口)。
解决步骤
- 打开Sublime Text 3,点击顶部菜单栏的
Tools > Build System > New Build System - 把新建文件里的默认内容替换成以下JSON配置:
{ "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_install替换成你实际的Sublime Text 3安装目录,比如用户目录下的~/.config/sublime-text-3/) - 最后,点击
Tools > Build System,选择你刚创建的Python3,再按Ctrl+B运行脚本,就能看到循环里的内容实时输出了!
内容的提问来源于stack exchange,提问作者Oppy
相关产品推荐
相关产品推荐

