我正在开发一个使用 cmd
制作交互式解释器的Python程序。其中一个命令导致程序挂起,但仅限于某些终端。我在Linux上尝试了几个不同的终端,并遇到了所有这些问题。但是,每当我尝试在 IDLE
或 PyCharm
中运行时,我都没有任何问题,而且行为符合预期。
我能找到的唯一相关帖子是Invoking python under CygWin on Windows hangs中的第一个回复。这似乎可能是一个类似的问题,但解决方案不会有太大帮助。
以下代码可以重现该问题。命令应按此顺序运行:加载,填充,提交。它会挂起提交(取决于终端)。
import cmd
import spynner
b = spynner.Browser(debug_level = spynner.DEBUG)
class Loop(cmd.Cmd):
def do_load(self, line):
b.load("http://joshcurl.com/test/")
b.load_jquery(True)
def do_fill(self, line):
b.fill("input[name=%s]" % "name", "joshua")
def do_submit(self, line):
b.submit("input[value=%s]" % "Submit")
def do_show(self, line):
print b.html
def do_EOF(self, line):
return True
if __name__ == '__main__':
Loop().cmdloop()
一般来说,“标准”Linux终端与IDLE和PyCharm等终端之间有什么不同可能导致这样的行为不同吗?