def foo()的PyRun_SimpleString失败:

2024-10-02 02:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

对于名称/路径中包含unicode(widechar)的文件,我无法使用PyRun_SimpleFile(文件*兼容性问题),因此出现了这个问题!在

因此,我决定自己打开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

^{pr2}$

我想用这个来显示if/失败时脚本的行号。许多其他人似乎在皮伦·简·斯特林身上取得了成功!在

提前谢谢。在


Tags: 文件路径脚本名称iflineunicodepyrun
1条回答
网友
1楼 · 发布于 2024-10-02 02:33:28

在本例中,您不会使用PyRun_SimpleString,因为它希望在一行中读取整个程序,而您将它分成多行。在

您应该使用PyRun_SimpleFile(fileReference, scriptPath)

注意:您需要创建globals和locals对象才能使上述操作正常工作。在

See this

相关问题 更多 >

    热门问题