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++