[解決済み] Pythonプログラム終了時のエラー:"ファイルオブジェクトのデストラクタでクローズに失敗"; "sys.excepthookが見つからない"
2022-02-27 04:20:37
質問
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())
私はいつもこれをやっていて、このエラーに遭遇したことはありませんが、これが最も可能性の高い理由だと思われます。
解決方法は?
私のメイン関数の一番最後に以下の文を追加すると、この問題が解決します。
try:
sys.stdout.close()
except:
pass
try:
sys.stderr.close()
except:
pass
関連
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】複数のモジュールでロギングを使用する
-
[解決済み】'print'出力をファイルにリダイレクトするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】NameError: 名前 'self' が定義されていません。