我在后台启动交互式Python控制台时遇到了一个奇怪的问题。 从后台恢复解释器后,它不会显示我输入的任何文本(即仅显示“ >>>”提示符),尽管它将解释我写的内容。 按下[enter]键会在同一行上创建另一个“ >>>”提示符。
重现问题的简单方法只需键入:
如果您在前景中启动程序,将其放入后台并将其返回到前景,则不会出现此问题:
如果你想知道为什么要在后台启动交互式解释器,可以考虑以下场景:我有一个运行时间很长的仿真程序,但是当它完成后,我想与结果进行交互。因此,我启动了程序:
简单的解决方法就是先在前台启动它,然后将其移至后台,稍后再将其带回前台,但我想知道为什么会发生这种情况。
重现问题的简单方法只需键入:
python &
fg
如果您在前景中启动程序,将其放入后台并将其返回到前景,则不会出现此问题:
python
[ctrl-z]
bg
fg
如果你想知道为什么要在后台启动交互式解释器,可以考虑以下场景:我有一个运行时间很长的仿真程序,但是当它完成后,我想与结果进行交互。因此,我启动了程序:
python -i simulation.py &
fg #(after it's finished running)
简单的解决方法就是先在前台启动它,然后将其移至后台,稍后再将其带回前台,但我想知道为什么会发生这种情况。
readline
模块?我曾经看到过类似的行为,当时是由于readline
与BSDlibedit
构建而不是GNUlibreadline
。虽然这已经有好几年了... 请问你使用的是哪个发行版/版本、哪个Python版本,以及顺便问一下,使用的是哪个shell和终端程序以及它们的版本? - abarnertsimulation.py
是否与termios
、tty
、curses
或类似的模块有关联?或者它是否向终端写入二进制数据? - abarnert