之前,我能夠殺死一個以execfile("somescript.py")
開頭的python腳本,而在解釋器中按Ctrl + C
而不會終止解釋器。這將導致會停止腳本的異常,並讓我再次使用解釋器。但是,現在(我懷疑這是python的更新版本),當我在運行腳本時按Ctrl + C
時,它有時也會殺死解釋器,並將我拋到Linux命令行。由於某些原因,每當我用Ctrl + C
殺死一個腳本時就不會發生這種情況。停止運行python腳本而不殺死解釋器
這很煩人,因爲我經常交互地使用python解釋器,也就是說,我運行一些腳本,使用execfile("somescript.py")
,在解釋器中產生的數據中玩耍等。之前,如果某個腳本卡住了,我可以殺死它並且在卡住之前不會丟失它計算的數據(或者我已經存儲在變量中)。
所以我的問題是,我現在如何殺死一個在解釋器中以execfile()
開頭的python腳本而不會導致解釋器被破壞?
爲什麼不捕獲異常和'break'你正在運行什麼循環? – jonrsharpe 2015-03-03 14:10:56
可能發生腳本意外地在它有機會處理中斷之前完成,並且最終被翻譯抓住。 – BartoszKP 2015-03-03 14:21:49
我不認爲是這種情況,因爲如果我沒有在解釋器中運行的任何東西,我可以按ctrl + C儘可能多地按我的意願解釋並不會被殺死。我認爲這種行爲與我在腳本中使用外部(非python)庫有關,如果我在從這些庫中執行某些內容時終止腳本,整個解釋器就會死亡。 – Echows 2015-03-03 16:37:34