如何从C++启动Python线程?

Sky*_*ker 5 c++ python multithreading boost-python

请注意,我被限制使用Python 2.6.我有一个Python 2.6应用程序,它使用一个用boost-python构建的C++多线程API库.我的用例只是从C++ boost线程执行Python函数回调,但尽管有许多不同的尝试和研究所有可用的在线资源,我还没有找到任何有效的方法.所有提出的解决方案围绕的功能的不同组合:Py_Initialize*,PyEval_InitThreads,PyGILState_Ensure,PyGILState_Release但在尝试所有可能的组合后一无所获工程实践中如

因此,这个问题:如何从C++启动和运行Python线程?我基本上想要:创建它,用Python目标函数对象运行它并忘记它.

那可能吗?

Sky*_*ker 0

OP How to call Python from a boost thread?的答案 也回答了这个OP或DP(派生:))。它清楚地演示了如何从 C++ 启动回调到 Python 的线程。我已经测试过它并且可以完美运行,但需要针对 C++11 之前的版本进行调整。它使用 Boost Python,确实是一个全包的 5* 答案,示例源代码在这里