C++ 内嵌 python 解释器
AI 提供
#include <Python.h>
#include <map>
#include <string>int main() {// 初始化 Python 解释器Py_Initialize();// 创建一个 C++ std::mapstd::map<std::string, int> myMap = {{"apple", 3},{"banana", 5},{"orange", 2}};// 创建 Python 字典对象PyObject* pDict = PyDict_New();// 将 std::map 转换为 Python 字典for (const auto& item : myMap) {PyObject* key = PyUnicode_FromString(item.first.c_str());PyObject* value = PyLong_FromLong(item.second);PyDict_SetItem(pDict, key, value);Py_DECREF(key);Py_DECREF(value);}// 设置 Python 全局变量PyObject* pModule = PyImport_AddModule("__main__");PyObject* pGlobals = PyModule_GetDict(pModule);PyDict_SetItemString(pGlobals, "cpp_map", pDict);// 运行 Python 脚本FILE* fp = fopen("script.py", "r");if (fp) {PyRun_SimpleFile(fp, "script.py");fclose(fp);}// 释放 Python 对象Py_DECREF(pDict);// 关闭 Python 解释器Py_Finalize();return 0;
}
在此基础上,可以使用 python 各种的功能模块,并把接收到的一些数据,通过这种方式,使用 python 的画图工具进行画图, 简化程序组件的开发难度