At Wednesday 8/11/2006 17:04, [EMAIL PROTECTED] wrote:

I'm trying to access python objects from c++. It works once. Second
time it hangs.
Does someone have any clue or some example code or pointer?

In general, try to make a *small* example that reproduces the problem you have.

And the c++ class executed inside a thread:
--------------------------------------------------------------------------------------------------
QStringList Pythonizer::getPackages( char *pyModule )
{
        // Initialize the Python Interpreter
        Py_Initialize();

 [... some code ...]

        DEBUG_LINE_INFO;
        if ( PyErr_Occurred() ) {
                PyErr_Print();
                PyErr_Clear();
                return QStringList::QStringList();
        }

 [... more code ...]
        // Finish the Python Interpreter
        Py_Finalize();

        return packageList;
}

You are initializing the interpreter on *each* call to getPackages - don't do that. Worse, "inside a thread". Just initialize the interpreter when your program begins, and finalize it when your program ends. Your current code does not call Py_Finalize when an error occurs. The next time, you invoke Py_Initialize again; and you shouldn't.


--
Gabriel Genellina
Softlab SRL
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to