交互式Python解释器在后台运行

时间:2013-11-04 21:07:10

标签: python linux bash

在后台启动交互式python控制台时,我遇到了一个奇怪的问题。从后台恢复解释器后,它不显示我输入的任何文本(即它只显示>>>提示,但它会解释我写的任何内容。按[enter]创建另一个>> >在同一行上提示。)

重现问题的简单方法就是输入:

python &
fg

如果您在前台启动程序,将其放在后台并将其返回到前台,则不会发生此问题:

python
[ctrl-z]
bg
fg

如果您想知道为什么要在后台启动交互式解释器,请考虑以下情形:

我有一个需要很长时间才能运行的模拟,但在完成之后,我想与结果进行交互。因此,我启动了该计划:

python -i simulation.py &
fg #(after it's finished running)

简单的解决方案就是在前台启动它,将它移到后台,然后将它带到前台,但我只是想知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

在将解释器带到前台后,请考虑执行以下命令强制终端ECHO模式:

import termios
attr = termios.tcgetattr(1)
attr[3] = attr[3] | termios.ECHO
termios.tcsetattr(1, termios.TCSANOW, attr)