嵌入C语言时的Python语法错误

时间:2014-11-11 08:43:28

标签: python c embed python-c-api

我有一个python文件,当我对我的python解释器执行它时运行正常。

我正在尝试使用python C API从C程序调用相同的文件:

#include <Python.h>
#include <stdio.h>

int main(int argc, char* argv[]){
    FILE* fp;

    Py_SetProgramName(argv[0]);
    Py_Initialize();
    PySys_SetArgv(argc, argv);
    fp = fopen("floatcli.py", "r");
    PyRun_SimpleFile(fp, "floatcli.py");    

    Py_Finalize();

}

然而,当我运行这个时,我得到一个python语法错误:

  File "floatcli.py", line 1
    üBa
     ^
SyntaxError: invalid syntax

(Ba周围还有一些装在盒子里的东西,这里没有显示)。

floatcli.py的第一行只是一个导入声明......知道发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

执行Python文件的十六进制转储,可能以其中一种Unicode格式进行编码,您所看到的可能是表示编码的标题。

如果是,您有两种选择。第一种是将其转换为ASCII,以便嵌入式Python解释器可以读取它,或者找出如何修改嵌入式Python解释器来处理编码。