【发布时间】:2015-05-04 05:07:44
【问题描述】:
以前,我可以在解释器中通过按Ctrl + C 来杀死以execfile("somescript.py") 开头的python 脚本,而不会杀死解释器。这将导致 KeyboardInterrupt 异常,该异常将停止脚本并让我再次使用解释器。但是,现在(我怀疑这与较新版本的 python 一起出现),当我在运行脚本时按Ctrl + C 时,它有时也会杀死解释器,让我回到 Linux 命令行。出于某种原因,并不是每次我用Ctrl + C 杀死一个脚本时都会发生这种情况。
这很烦人,因为我经常交互式地使用 python 解释器,即我用execfile("somescript.py") 运行一些脚本,玩弄它在解释器中产生的数据等等。之前,如果一些脚本卡住了,我可以杀死并且在卡住之前不会丢失它计算的数据(或者我存储在变量中的数据)。
所以我的问题是,我现在如何在解释器中杀死以execfile() 开头的python 脚本而不杀死解释器?
【问题讨论】:
-
为什么不捕获异常和
break任何你正在运行的循环? -
脚本可能会在有机会处理中断之前意外完成并最终被解释器捕获。
-
我不认为是这种情况,因为如果我没有在解释器中运行任何东西,我可以按我想要的次数按 ctrl + C 并且解释器不会被杀死。我认为这种行为与我在脚本中使用外部(非python)库这一事实有关,如果我在脚本从这些库中执行某些内容时杀死脚本,整个解释器就会以某种方式死亡。
标签: python interpreter kill-process