PyRun_SimpleString 每当使用导入时都会阻塞,从不 returns

PyRun_SimpleString is blocking whenever import is used, never returns

std::cout << "im in here!\n";
PyGILState_STATE sMain = PyGILState_Ensure();

if (sMain)
{
    std::cout << "attempting\n";
    PyRun_SimpleString("import sys; sys.exit();");
    std::cout << "attempted!\n";
}

PyGILState_Release(sMain);

似乎从未尝试打印,但 sMain 有效且存在 PyRun_SimpleString 实际上从来没有出现在 return 中。 Python 有问题的代码也从未出现在 运行 中。

编辑: 所以我已经将问题缩小到每当我在字符串中导入模块时。 正常代码工作正常但是如果我导入功能块并且从不 returns

修复它,尝试使用 PyImport_ImportModuleNoBlock 导入,它报告模块锁被另一个线程持有 Python 2.7