通常我可以使用Ctrl + C中断内容,但有时当我使用线程时它不起作用 - 例如下面的例子。
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.sleep(100)
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
K eyboardInterrupt
>>> import Queue
>>> q = Queue.Queue(maxsize=3)
>>> q.put(0)
>>> q.put(1)
>>> q.put(2)
>>> q.put(3)
^C^C^C^C^C^C^C^C
^C^C^C
^C^C
^C
@*#()#@#@$!!!!!
编辑:有没有办法回到翻译?到目前为止,解决方案完全取消了python和现有的命名空间..
答案 0 :(得分:3)
您可以使用 Ctrl + \ 终止Python解释器。
这将发送SIGQUIT
而不是SIGINT
。
答案 1 :(得分:1)
^ C失败的快速解决方法是首先使用^ Z暂停所有线程的进程,然后将其终止。
在^ C失败的情况下,这适用于许多情况,并且我刚刚测试它也适用于此(在Python v.2.6.5上测试):
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Queue
>>> q = Queue.Queue(maxsize=3)
>>> q.put(0)
>>> q.put(1)
>>> q.put(2)
>>> [^C]
KeyboardInterrupt #does not kill the process
>>> [^Z - Suspends and exits to shell]
[1]+ Stopped python
#mdf:~$ kill -9 %%
[1]+ Killed python
答案 2 :(得分:0)
执行此操作的一种懒惰方法是打开另一个窗口。
执行ps
以获得PID。
执行kill
以杀死违规流程。