首页 > 解决方案 > 如何使用键盘在 Spyder3 中手动中止 Python3 脚本

问题描述

如何abort/stop使用 Spyder 手动(我称之为 KeyboardInterrupt)执行 Python3 脚本?

当我单击run filerun current cell时,没有什么可以阻止脚本的执行,直到它完成。

Python 3.7.0 64 位、Qt 5.9.6、PyQt5 5.9.2、Spyder 3.3.4、Anaconda 3 64 位、Windows 10 64 位

Ctrl + C不起作用, Ctr+X不起作用,IPython 控制台中的红色“停止当前命令”按钮不起作用。
我可以停止正在运行的脚本的唯一方法是通过菜单控制台>重新启动内核。

此示例代码显示 KeyboardInterrupt 在 Spyder 中不起作用,在下面的 3 个部分中都没有。

@author: xynxnex'''

#%% 
def hello():
    print('Hello Spyder '+str(nr))
import time
nr = 0
while nr < 42:
    nr +=1
    hello()
    time.sleep(1)    

#%% loop in function
def hello(n):
    nr = 0
    while nr < n: #n is a local variable, thus not shown in Variable explorer
        nr +=1 #nr is a local variable, thus not shown in Variable explorer
        print('Hello Spyder '+str(nr))
        time.sleep(1)
    return n
import time
x = hello(42) #

#%% just a simple loop
import time
nr = 0
while nr < 42:
    nr +=1
    print('Hello Spyder '+str(nr))
    time.sleep(1)

没有错误,但循环只是继续执行直到完成。

标签: pythonpython-3.xspyderkeyboardinterrupt

解决方案


Ctrl c(不是大写 c)为我产生了键盘中断。Spyder 3.3.6 Python 3.6.8 64 位 | Qt 5.9.6 | PyQt5 5.9.2 | 视窗 10

#%% just a simple loop
    import time
    nr = 0
    while nr < 42:
        nr +=1
        print('Hello Spyder '+str(nr))
        time.sleep(1)

Hello Spyder 1
Hello Spyder 2
Traceback (most recent call last):

  File "<ipython-input-23-b2c4320912d9>", line 7, in <module>
    time.sleep(1)

KeyboardInterrupt

推荐阅读