Как встроить несколько интерпретаторов Python в программу на C ++ с pybind11? - PullRequest
0 голосов
/ 22 октября 2019

Используя 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

Полагаю, это нет-нет. Но почему? Откуда бы это вообще знать?

...