Все, что делает вызов PyImport_Import
, возвращает ссылку на модуль - он не делает такую ссылку доступной для других частей программы. Итак, если вы хотите, чтобы PyRun_SimpleString
увидел ваш новый импортированный модуль, вам нужно добавить его вручную.
PyRun_SimpleString
работает автоматически в пространстве имен модуля __main__
. Не обращая большого внимания на проверку ошибок (опасайтесь NULL-возвратов!), Это общая схема:
PyObject *main = PyImport_AddModule("__main__");
PyObject *obj = PyString_FromString("Pootle");
PyObject *pootle = PyImport_Import(obj);
PyObject_SetAttrString(main, "Pootle", pootle);
Py_DECREF(obj);
Py_XDECREF(pootle);