Wie rufe ich die Ausnahme von PyObject_call als C -String ab?Python

Python-Programme
Guest
 Wie rufe ich die Ausnahme von PyObject_call als C -String ab?

Post by Guest »

Ich versuche zu debuggen, warum ein Anruf bei einem Python -Objekt nicht in einer Umgebung funktioniert. Leider kann ich nicht herausfinden, wie ich den Fehler irgendwohin zurückerhalten kann. Ich kann ihn sehen. Also versuche ich es manueller abzurufen. < /P>
Hier ist was ich bisher habe: < /p>

Code: Select all

  PyObject* mod = PyImport_ImportModule("myModule");
PyObject* dict = PyModule_GetDict(mod);
// (Some args are initialized before this point, please ignore)
PyObject* mainWindow = PyDict_GetItemString(dict, "MainWindow");
PyObject* myObject = PyObject_Call(mainWindow, args, NULL);

if (!myObject )
{
if (PyErr_Occurred())
{
// Try to get the error as a C string
PyObject *type, *value, *traceback;
PyErr_Fetch(&type, &value, &traceback);
PyErr_NormalizeException(&type, &value, &traceback);
// This should turn 'value' into a python exception object?
PyObject *errStr = PyObject_Str(value);
char *pStrErrorMessage = PyUnicode_AsUTF8(errStr);
std::string errString(pStrErrorMessage);
}
}
Dies gibt eine Zeichenfolge zurück, aber es ist ein einzelnes Wort und ich würde annehmen, dass etwas mit Formatierung/Verkleidung alles schief gelaufen ist und der Rest fehlt.
Wie bekomme ich die Python -Ausnahme in C/C ++ richtig? (Boost nicht verfügbar)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post