Estoy usando Boost.Python para incrustar un intérprete en mi ejecutable de C++ y ejecutar algunos scripts preescritos. Lo tengo funcionando para que pueda llamar funciones en el archivo python, pero el código python que quiero usar importa archivos externos y estas importaciones fallan porque 'no hay un módulo nombrado'. Si ejecuto el script directamente desde Python, todo funciona como se esperaba.Cómo funciona la importación con Boost.Python desde dentro de los archivos de python
Así que mi pregunta es ¿cuál es la forma correcta de importar módulos en scripts de Python que se ejecutan a través de enlaces C++?
C++ Code: Código Python
#include "boost/python.hpp"
int main(int argc, char** argv)
{
try
{
Py_Initialize();
boost::python::object test = boost::python::import("__main__");
boost::python::object testDict = test.attr("__dict__");
boost::python::exec_file("test.py", testDict, testDict);
}
catch(boost::python::error_already_set& e)
{
PyErr_Print();
}
return 0;
}
:
import ModuleX
Para Python3 reemplace 'PyString_FromString' con' PyBytes_FromString' – schuess