你可以从 C 代码中导入 python 模块,并像在 python 代码中一样调用定义的东西。这有点啰嗦,但完全有可能。
当我想弄清楚如何做这样的事情时,我会查看C API 文档。关于导入模块的部分将有所帮助。您还需要阅读文档中的如何读取属性、调用函数等。
但是我怀疑您真正想要做的是从 C 调用底层库 sdl。这是一个 C 库,并且非常易于从 C 中使用。
这是一些示例代码,用于在 C 中导入 python 模块,改编自一些工作代码
PyObject *module = 0;
PyObject *result = 0;
PyObject *module_dict = 0;
PyObject *func = 0;
module = PyImport_ImportModule((char *)"pygame"); /* new ref */
if (module == 0)
{
PyErr_Print();
log("Couldn't find python module pygame");
goto out;
}
module_dict = PyModule_GetDict(module); /* borrowed */
if (module_dict == 0)
{
PyErr_Print();
log("Couldn't find read python module pygame");
goto out;
}
func = PyDict_GetItemString(module_dict, "pygame_function"); /* borrowed */
if (func == 0)
{
PyErr_Print();
log("Couldn't find pygame.pygame_function");
goto out;
}
result = PyEval_CallObject(func, NULL); /* new ref */
if (result == 0)
{
PyErr_Print();
log("Couldn't run pygame.pygame_function");
goto out;
}
/* do stuff with result */
out:;
Py_XDECREF(result);
Py_XDECREF(module);