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 失败的主要内容,如果未能解决你的问题,请参考以下文章

如何对大型 3d 图像堆栈使用多处理? Python

Python学习之多线程编程

ubuntu为python处理图片安装图片数据增强库imgaug

Python多线程编程详解

图像增强处理Python程序

python官网上版本那么多要下载哪个?