2017-01-25 15 views
0

私はSpyder IDEバージョン3.0.0で作業しています。私のpythonバージョンは2.7.12です。 何らかの理由でatexitメカニズムがこの特定のIDEで動作しません。Spyder IDEでPython atexit関数が呼び出されていません


コード

import atexit 

def done(): 
    print '2' 

atexit.register(done) 
print '1' 

私はPyCharmまたはWindows CMDからスクリプトを実行すると、それが印刷さ

結果:

1 
2 

Spyderから実行すると、done関数は呼び出されず、2は出力されません。最終的な結果は次のとおりです。

1 

はそれがあるとどのように私はそれを修正することができ、なぜ誰かが知っていますか?

ありがとうございます!

+0

あなたが与えたコード'1'または' 2'を印刷しません... – linusg

+0

@linusg、ありがとう、それは古いバージョンでした。 – drorco

+0

私が知る限り、 'atextit'はプログラムがエラーコードなしで終了したときだけ登録された関数を呼び出すので、中断したり、突然途絶えたりしないことを確認してください。 – linusg

答えて

0

あなたは(atexit.registerを使用する必要がある場合)、あなたは答えのように、atexit._run_exitfuncsを呼び出すことができます。

https://stackoverflow.com/a/21634308/6669602

(それとも、カーネルを再起動することができます)

関連する問題