📅  最后修改于: 2023-12-03 14:55:52.409000             🧑  作者: Mango
在Python中,模块是一个可重用的代码单元,可以包含变量、函数和类等,可以被其他程序或脚本导入和使用。PyImport_ImportModule("
PyObject* PyImport_ImportModule(const char* name);
以下是一个简单的C程序示例,它使用PyImport_ImportModule函数导入了Python中的sys模块,并在C代码中调用了sys模块中的某些函数:
#include <Python.h>
int main(int argc, char *argv[])
{
Py_Initialize();
PyObject *module = PyImport_ImportModule("sys");
if (module != NULL) {
PyObject *path = PyObject_GetAttrString(module, "path");
if (path != NULL) {
int size = PyList_Size(path);
for (int i = 0; i < size; i++) {
PyObject *item = PyList_GetItem(path, i);
if (item != NULL) {
const char *dir = PyUnicode_AsUTF8(item);
printf("sys.path[%d]: %s \n", i, dir);
}
}
Py_DECREF(path);
}
Py_DECREF(module);
}
Py_Finalize();
return 0;
}
在以上代码中,首先调用了Py_Initialize()函数初始化Python解释器,然后通过调用PyImport_ImportModule("sys")函数导入了sys模块,并获取了sys.path列表。通过在C代码中调用PyObject_GetAttrString函数和PyUnicode_AsUTF8函数,可以将sys.path列表中的每个字符串打印出来。最后再调用Py_Finalize()函数关闭Python解释器。