(Python C API) PyRun_StringFlags отсутствует встроенные функции?
Я пытаюсь встроить некоторый питон в мой любимый проект. Я сократил мою проблему до следующего кода:
#include <Python.h>
#include "iostream"
int main(int argc, char *argv[])
{
Py_Initialize();
PyObject *globals = Py_BuildValue("{}");
PyObject *locals = Py_BuildValue("{}");
PyObject *string_result = PyRun_StringFlags(
"a=5\n"
"s='hello'\n"
"d=dict()\n"
,
Py_file_input, globals, locals, NULL);
if ( PyErr_Occurred() ) {PyErr_Print();PyErr_Clear();return 1;}
return 0;
}
(Я знаю, что не убираю никаких ссылок. Это пример.)
это может быть скомпилировано
c++ $(python-config --includes) $(python-config --libs) test.cpp -o test
Если я запускаю его, я получаю следующую ошибку:
$ ./test
Traceback (most recent call last):
File "<string>", line 3, in <module>
NameError: name 'dict' is not defined
Кажется, встроенные функции не загружены. Я тоже не могуimport
что-нибудь. я понимаю__import__
пропал, отсутствует. Как я могу загрузить отсутствующие модули или все, что мне не хватает?
Благодарю.