Mik*_*and 5 python emacs output-buffering
在这里的相关问题和答案中,有人假设emacs(23.2)中的python-shell是块缓冲而不是行缓冲.建议修复是将sys.stdout.flush()添加到我的脚本中的位置,我希望stdio将其内容刷新到python-shell.
有没有办法欺骗python-shell(在Windows上的emacs 23.2中运行,而不是在Linux上运行)a)认为它附加到TTY或b)使用行缓冲而不是块缓冲模式?我不明白为什么我能在IDLE中执行此操作但不能在emacs中执行此操作.
我宁愿自定义emacs而不是在我的脚本中添加sys.stdout.flush().叫我懒惰:-).
谢谢,
麦克风
对于那些想知道的人,我认为相关行为已在emacs“7. Subprocesses\ 7.3 Buffering in shells and subprocesses”中讨论。
“在 shell 缓冲区中,stdout 是一个管道句柄,因此以块的形式进行缓冲。如果您希望程序的缓冲行为有所不同,则必须更改程序本身;您可以使用 setbuf 和 setvbuf 来操纵缓冲语义。”
通过将以下内容添加到我的 init.el 来解决(有关更多详细信息,请参阅此处的 SO 链接):
(setenv "PYTHONUNBUFFERED" "x")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1077 次 |
最近记录: |