私は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 プログラムをコンパイルして実行すると、次のようになります。
フランク
私はテストスクリプトです
ランダム画像
機能中
ただし、PyRun_SimpleString("print(blah)") を使用するのではなく、インタープリターから Python 文字列を取得し、それらを C 文字列に貼り付けてから出力する方法が必要です。
例えば:
char *__NAME__;
__NAME__ = Py_GetObject("__NAME__")
これは可能ですか?
ご協力いただきありがとうございます。