我有一个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
的第一行只是一个导入声明......知道发生了什么事吗?
答案 0 :(得分:1)
执行Python文件的十六进制转储,可能以其中一种Unicode格式进行编码,您所看到的可能是表示编码的标题。
如果是,您有两种选择。第一种是将其转换为ASCII,以便嵌入式Python解释器可以读取它,或者找出如何修改嵌入式Python解释器来处理编码。