我一直在搞乱 Python/C API 并拥有以下代码:
#include <Python.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
//Initialize Python
Py_Initialize();
//Run file
FILE *fp = fopen("Test.py", "r");
PyRun_SimpleFile(fp,"Test.py");
fclose(fp);
//Run Python code
PyRun_SimpleString("print(__NAME__)");
PyRun_SimpleString("print(__DESC__)");
PyRun_SimpleString("print(__SKIN__)");
PyRun_SimpleString("onEnable()");
//Finalize Python
Py_Finalize();
return EXIT_SUCCESS;
}
Test.py 包含以下内容:
__NAME__ = "Frank"
__DESC__ = "I am a test script"
__SKIN__ = "random image"
def onEnable():
print("In Func")
如您所料,编译和运行 c 程序会导致:
坦率
我是测试脚本
随机图像
在功能
但是,我需要一种从解释器获取 python 字符串的方法,将它们粘贴到 C 字符串中,然后打印它们,而不是使用 PyRun_SimpleString("print(blah)")。
例如:
char *__NAME__;
__NAME__ = Py_GetObject("__NAME__")
这可能吗?
谢谢你的帮助。