C++에서 파이썬 표현식을 평가해야합니다. 이 코드는 작동하는 것 같다 :PyRun_String이 bool 리터럴을 평가하지 않는 이유는 무엇입니까?
PyObject * dict = PyDict_New();
PyObject * val = PyRun_String(expression, Py_eval_input, dict, 0);
Py_DECREF(dict);
불행히도, 표현 (즉, 발은 0입니다 및 PyErr_Occurred()가 true를 돌려) "거짓"의 "참"인 경우 끔찍하게 실패합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 그들은 각각 Py_True와 Py_False로 평가해서는 안됩니까? 당신이 True와 False하려면
오류 발생 후 PyErr_Print()가 호출 할 때 표시되는 점은 무엇입니까? –
필자는 이전에이 작업을 수행 했어야했지만 PyErr_Print()를 여러 가지 이유로 응용 프로그램에서 호출 할 수는 없습니다. 어쨌든, 이것을 고립 된 파일로 재현했는데 이것이 내가 가지고있는 것입니다 : NameError : name 'False'가 정의되지 않았습니다 !! 이 리터럴이 C에서 사용할 수없는 것 같습니다 ...! – UncleZeiv
질문에 대한 답변이므로 답변으로 게시해야합니다. –