Python 多处理中的 PicklingError
使用 Python 多处理时,可能会遇到“PicklingError: Can't pickle
嵌套函数问题
中根据您的具体情况,错误可能是由您正在酸洗的函数调用嵌套函数引起的。即使外部函数 f() 是在顶层定义的,如果它调用包含嵌套函数 h() 的函数 g(),多重处理将尝试 pickle 嵌套函数并失败。
解决方案
要解决此问题,请将您想要 pickle 的函数移动到模块的顶层。或者,您可以在顶层创建一个单独的函数来调用嵌套函数并腌制该函数。
例如:
# 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中文网其他相关文章!