【发布时间】:2013-02-19 21:48:53
【问题描述】:
对于名称/路径中包含 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++;
}
Above 在下面的 def 语句中给出错误(
Python 版本是 2.7
import os
print "hello"
def foo(): # <-- PyRun_SimpleString fails here
print "hello again"
我想用它来显示如果/它失败的脚本的行号。许多其他人似乎使用 PyRun_SimpleString 取得了成功!
提前致谢。
【问题讨论】:
-
PyRun_SimpleString 需要一个完整的源代码字符串,而不是其中的一行。
标签: c++ python python-embedding