PyObject* PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals);
如果你想知道真假,他们必须在
*globals
迪克特传给口译员。你可以打电话来解决这个问题
PyEval_GetBuiltins
.
if (PyDict_GetItemString(globals, "__builtins__") == NULL) {
if (PyDict_SetItemString(globals, "__builtins__",
PyEval_GetBuiltins()) != 0)
return NULL;
}
如果这不起作用,你可以试着
PyRun_String("import __builtin__ as __builtins__", globals, locals)
打电话之前
PyRun_String("True", ...)
.
您可能会注意到Python交互式解释器总是在
__main__
我们在这里没有费心创建的模块。我不知道你是否需要一个
__主要__
模块,除了有许多脚本包含
if __name__ == "__main__"
.