Python マルチプロセッシングでの PicklingError
Python マルチプロセッシングを使用すると、「PicklingError: Can't pickle
Nested Function Issue
Inあなたの特定のケースでは、入れ子関数を呼び出しているピクルしている関数によってエラーが発生する可能性があります。外部関数 f() が最上位で定義されているにもかかわらず、ネストされた関数 h() を含む関数 g() を呼び出すと、マルチプロセッシングはネストされた関数をピクル化しようとして失敗します。
解決策
この問題を解決するには、ピクル化する関数をモジュールの最上位に移動します。あるいは、ネストされた関数を呼び出す別の関数をトップレベルで作成し、代わりにその関数をピクルすることもできます。
例:
# Original code def f(): g() def g(): h() # Corrected code def f(): wrapper_function() def wrapper_function(): g() h()
トップレベルでwrapper_function()を定義することによって
追加考慮事項
以上がPython マルチプロセッシングの「PicklingError: Can't pickle」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。