Boost.Python 与多处理兼容吗?

Posted

技术标签:

【中文标题】Boost.Python 与多处理兼容吗?【英文标题】:Is Boost.Python compatible with multiprocessing? 【发布时间】:2020-11-21 04:16:44 【问题描述】:

我想将我的 C++ 代码与 Python 的 multiprocessing 一起使用,以便从不同的进程并行调用我的 C++ 代码。该代码不保存任何状态,并且不同进程之间不需要内存共享。我决定使用 Boost/Python 将我的 C++ 库导入 Python。

但是,FAQ 表示 Boost/Python 与多个解释器不兼容。我试图理解这究竟意味着什么。具体来说,这是否意味着通过 Boost/Python 使用 multiprocessing 调用我的 C++ 代码会有问题?

【问题讨论】:

【参考方案1】:

多个进程每个进程不需要超过 1 个解释器。

此外,您描述这种情况的方式是使用 Python 的本机模块。在那种情况下,无论如何 Python 都会提供解释器。

我理解 1-interpreter 限制的方式适用于从 C++ 中嵌入 python - Boost Python 功能的一个相当有限的子集。

【讨论】:

啊,好吧,我误解了文档。

以上是关于Boost.Python 与多处理兼容吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Boost.Python 定义 Python 元类?

构建引用 Boost 的 Python 包时的 LNK1120

boost::python - C++ 调用 Python 调用 C++

Boost.Python.ArgumentError:python str 未转换为 std::string

C++ Boost Python numpy 数组初始化

Python 多处理与多线程相结合