对于名称/路径中包含 unicode(widechar)的文件,我无法让 PyRun_SimpleFile 工作(FILE* 兼容性问题),因此这个问题!
因此,我决定自己打开 python 脚本,然后使用 PyRun_SimpleString 执行每一行。
此处显示的伪代码。
wchar_t* pWScriptName=NULL;
// pWScriptName malloced & populated here
FILE* fp = _wfopen(pWScriptName, L"r");
while (fgets(line, BUFSIZ, fp) != NULL) {
int ret = PyRun_SimpleString(line);
if(ret != 0) {
... error at lineNum ...
}
lineNum++;
}
上面在下面的 def 语句中给出了错误(<- 如下所示)
Python版本是2.7
import os
print "hello"
def foo(): # <-- PyRun_SimpleString fails here
print "hello again"
我想用它来显示如果/它失败的脚本的行号。许多其他人似乎使用 PyRun_SimpleString 取得了成功!
提前致谢。