Используя pybind11, я хотел бы встроить несколько интерпретаторов: я хочу запустить несколько потоков и в каждом потоке запустить интерпретатор eval_file, а затем остановить интерпретатор и закрыть поток.
По сути, это функция потока:
pybind11::scoped_interpreter guard{};
pybind11::eval_file(python_filename);
Компиляция в порядке, но во время выполнения я получаю:
terminate called after throwing an instance of 'std::runtime_error'
what(): The interpreter is already running
Полагаю, это нет-нет. Но почему? Откуда бы это вообще знать?