Python 3.X 多处理增强 Python 失败
Posted
技术标签:
【中文标题】Python 3.X 多处理增强 Python 失败【英文标题】:Python 3.X Multiprocessing Boost Python Failed 【发布时间】:2021-10-13 07:58:27 【问题描述】:我正在尝试使用多处理将 Boost 封装的函数映射到多个内核。这在 python 2.7 中运行良好,但在 python 3.8 中失败。我知道显而易见的答案:如果 python 2.7 有效,你为什么不直接使用它呢?那么问题是这个软件的当前版本只为python 3.X 包装。有谁知道在 python 3 中解决 boost-wrapped 代码的酸洗错误的方法?
multiprocessing.pool.MaybeEncodingError: Error sending result:
'<multiprocessing.pool.ExceptionWithTraceback object at 0x7ff19e308f40>'. Reason:
'PicklingError("Can't pickle <class 'Boost.Python.ArgumentError'>: import of module 'Boost.Python' failed")'
【问题讨论】:
【参考方案1】:此错误没有提供信息。在python 2.7
中,它自动将float
对象转换为int
对象,但在python 3.8
中,multiprocessing
模块中的这种自动转换不会发生。因此,传递给 boost-wrapped c++
代码的参数类型错误。将它们更改为正确的类型可修复此错误。
【讨论】:
以上是关于Python 3.X 多处理增强 Python 失败的主要内容,如果未能解决你的问题,请参考以下文章