我正在编写一个C程序,需要将Python(3.11)代码嵌入其中,我使用Python.h来尝试并完成这一点。总体思路是,我的Python脚本将包含一个"main()"函数,它将返回一个已知大小的数组,因为我将在运行时对源代码执行操作,所以它将被C程序存储为字符串。
我知道我可以通过以下方式做到:
...
PyObject *pName = PyString_FromString("main");
PyObject *pModule = PyImport_Import(pName)
...
然而,为了真正执行脚本,我需要将它写入一个文件,以便python可以再次读取它。这增加了额外的执行时间,我宁愿避免。有没有什么方法可以将源代码作为字符串直接传递给python,然后从那里开始工作?或者我只是被搞砸了?
编辑:顺便说一句,PyRun_SimpleString没有做我想要的事情,因为它没有从执行的代码中返回任何东西。
1条答案
按热度按时间taor4pac1#
在评论中找到了答案,感谢nick。PyRun_String的用法示例:https://schneide.blog/2011/10/10/embedding-python-into-cpp/,并从python脚本中提取列表变量https://docs.python.org/3/c-api/list.html最后的科学怪人: