2017-03-10 1 views
0

を「sys.excepthookが欠落している」、私は次のエラーを取得する:これはから来るかもしれないどこPythonプログラム終了時にエラーが発生しました: "ファイルオブジェクトデストラクタでのクローズに失敗しました";私のPythonコードの最後の行(print文)の後

close failed in file object destructor: 
sys.excepthook is missing 
lost sys.stderr 

誰もが知っていますか?

アップデート:私のpythonのコードは非常に長いですが、私はこのエラーとは何かを持っているかもしれ部分を掲載します。私は次のようにログファイルにstdoutとstderrをリダイレクトプロセスの先頭付近に、一つは

をこの:

so = se = open(logfile, 'w', 0)      
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) 
os.dup2(so.fileno(), sys.stdout.fileno())   
os.dup2(se.fileno(), sys.stderr.fileno()) 

私も、このすべての時間を行うと、このエラーに遭遇したことがないが、それは私がこれを見ている可能性が高い理由です。私の主な機能の最後に次のステートメントを追加する

+1

プログラムを呼び出すときにエラー( 'stderr')ストリームで何をしますか? –

+0

自分で書き込んだ 'sys'という名前のモジュールをインポートしていますか? – Ivan

+2

私はこのエラーがあなたのコードから来ているかもしれないと思っていますが、あなたが私たちにそれを見せていないので、世界は決して知らないかもしれません。 – jwodder

答えて

2

は私のために、この問題が修正されています。

try: 
    sys.stdout.close() 
except: 
    pass 
try: 
    sys.stderr.close() 
except: 
    pass 
0

は私のために働いたフラッシュおよびクローズを行います。

sys.stdout.flush() 
sys.stdout.close() 

sys.stderr.flush() 
sys.stderr.close() 
関連する問題