From: h0uk on
Hello.

I have the following code:

#workers = {}
QtCore.QThreadPool.globalInstance().setExpiryTimeout
(300000)
QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
for i in range(1, int(userscnt) + 1):
work = wk.Worker(i)
# connect signals
work.mmShowCaptcha.connect(self.show_captcha_dlg)
work.log.connect(self.handle_log)
self.captcha_answer.connect(work.mmCaptchaAnswer)
work.setAutoDelete(True)
QtCore.QThreadPool.globalInstance().start(work)



On last line of code ( QtCore.QThreadPool.globalInstance().start
(work) ) i get an error:

SystemError: error return without exception set

What is wrong in my code??? Any advise???

Thanks
From: Diez B. Roggisch on
h0uk schrieb:
> Hello.
>
> I have the following code:
>
> #workers = {}
> QtCore.QThreadPool.globalInstance().setExpiryTimeout
> (300000)
> QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
> for i in range(1, int(userscnt) + 1):
> work = wk.Worker(i)
> # connect signals
> work.mmShowCaptcha.connect(self.show_captcha_dlg)
> work.log.connect(self.handle_log)
> self.captcha_answer.connect(work.mmCaptchaAnswer)
> work.setAutoDelete(True)
> QtCore.QThreadPool.globalInstance().start(work)
>
>
>
> On last line of code ( QtCore.QThreadPool.globalInstance().start
> (work) ) i get an error:
>
> SystemError: error return without exception set
>
> What is wrong in my code??? Any advise???


The error is on C-level. AFAIK it occurs when a Python-C-function
returns "NULL" without setting an exception.

It's hard to say where it really occurs. I'd use a debug-build of PyQt,
and possibly Python, and then investigate using gdb.

Alternatively, what happens when you do some "dummy"-work that doesn't
use signals and no other libraries?

Diez
From: h0uk on
On 8 янв, 01:02, "Diez B. Roggisch" <de...(a)nospam.web.de> wrote:
> h0uk schrieb:
>
>
>
> > Hello.
>
> > I have the following code:
>
> >             #workers = {}
> >             QtCore.QThreadPool.globalInstance().setExpiryTimeout
> > (300000)
> >             QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
> >             for i in range(1, int(userscnt) + 1):
> >                 work = wk.Worker(i)
> >                 # connect signals
> >                 work.mmShowCaptcha.connect(self.show_captcha_dlg)
> >                 work.log.connect(self.handle_log)
> >                 self.captcha_answer.connect(work.mmCaptchaAnswer)
> >                 work.setAutoDelete(True)
> >                 QtCore.QThreadPool.globalInstance().start(work)
>
> > On last line of code ( QtCore.QThreadPool.globalInstance().start
> > (work) ) i get an error:
>
> > SystemError: error return without exception set
>
> > What is wrong in my code??? Any advise???
>
> The error is on C-level. AFAIK it occurs when a Python-C-function
> returns "NULL" without setting an exception.
>
> It's hard to say where it really occurs. I'd use a debug-build of PyQt,
> and possibly Python, and then investigate using gdb.
>
> Alternatively, what happens when you do some "dummy"-work that doesn't
> use signals and no other libraries?
>
> Diez

About some "dummy" code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import time

from PyQt4 import QtCore, QtGui

class Job(QtCore.QRunnable):
def __init__(self, name):
QtCore.QRunnable.__init__(self)
self._name = name

def run(self):
time.sleep(10)
print self._name

def autoDelete(self):
return self._auto

def setAutoDelete(self, auto):
self._auto = auto



if __name__ == "__main__":

app = QtGui.QApplication(sys.argv)

QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)

j = Job("Job-1")
j.setAutoDelete(True)
QtCore.QThreadPool.globalInstance().start(j)


Even this code not work. On the last line of code
( QtCore.QThreadPool.globalInstance().start(j) ) i get the error:

>> An unhandled win32 exception occured in python.exe

From: Diez B. Roggisch on
h0uk schrieb:
> On 8 янв, 01:02, "Diez B. Roggisch" <de...(a)nospam.web.de> wrote:
>> h0uk schrieb:
>>
>>
>>
>>> Hello.
>>> I have the following code:
>>> #workers = {}
>>> QtCore.QThreadPool.globalInstance().setExpiryTimeout
>>> (300000)
>>> QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
>>> for i in range(1, int(userscnt) + 1):
>>> work = wk.Worker(i)
>>> # connect signals
>>> work.mmShowCaptcha.connect(self.show_captcha_dlg)
>>> work.log.connect(self.handle_log)
>>> self.captcha_answer.connect(work.mmCaptchaAnswer)
>>> work.setAutoDelete(True)
>>> QtCore.QThreadPool.globalInstance().start(work)
>>> On last line of code ( QtCore.QThreadPool.globalInstance().start
>>> (work) ) i get an error:
>>> SystemError: error return without exception set
>>> What is wrong in my code??? Any advise???
>> The error is on C-level. AFAIK it occurs when a Python-C-function
>> returns "NULL" without setting an exception.
>>
>> It's hard to say where it really occurs. I'd use a debug-build of PyQt,
>> and possibly Python, and then investigate using gdb.
>>
>> Alternatively, what happens when you do some "dummy"-work that doesn't
>> use signals and no other libraries?
>>
>> Diez
>
> About some "dummy" code:
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import sys
> import os
> import time
>
> from PyQt4 import QtCore, QtGui
>
> class Job(QtCore.QRunnable):
> def __init__(self, name):
> QtCore.QRunnable.__init__(self)
> self._name = name
>
> def run(self):
> time.sleep(10)
> print self._name
>
> def autoDelete(self):
> return self._auto
>
> def setAutoDelete(self, auto):
> self._auto = auto
>
>
>
> if __name__ == "__main__":
>
> app = QtGui.QApplication(sys.argv)
>
> QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
>
> j = Job("Job-1")
> j.setAutoDelete(True)
> QtCore.QThreadPool.globalInstance().start(j)
>
>
> Even this code not work. On the last line of code
> ( QtCore.QThreadPool.globalInstance().start(j) ) i get the error:
>
>>> An unhandled win32 exception occured in python.exe

Hm. I suggest you take this to the PyQt mailinglist. Phil Thompson is
very responsive.

Diez
From: h0uk on
On 8 янв, 02:25, "Diez B. Roggisch" <de...(a)nospam.web.de> wrote:
> h0uk schrieb:
>
>
>
> > On 8 янв, 01:02, "Diez B. Roggisch" <de...(a)nospam.web.de> wrote:
> >> h0uk schrieb:
>
> >>> Hello.
> >>> I have the following code:
> >>>             #workers = {}
> >>>             QtCore.QThreadPool.globalInstance().setExpiryTimeout
> >>> (300000)
> >>>             QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
> >>>             for i in range(1, int(userscnt) + 1):
> >>>                 work = wk.Worker(i)
> >>>                 # connect signals
> >>>                 work.mmShowCaptcha.connect(self.show_captcha_dlg)
> >>>                 work.log.connect(self.handle_log)
> >>>                 self.captcha_answer.connect(work.mmCaptchaAnswer)
> >>>                 work.setAutoDelete(True)
> >>>                 QtCore.QThreadPool.globalInstance().start(work)
> >>> On last line of code ( QtCore.QThreadPool.globalInstance().start
> >>> (work) ) i get an error:
> >>> SystemError: error return without exception set
> >>> What is wrong in my code??? Any advise???
> >> The error is on C-level. AFAIK it occurs when a Python-C-function
> >> returns "NULL" without setting an exception.
>
> >> It's hard to say where it really occurs. I'd use a debug-build of PyQt,
> >> and possibly Python, and then investigate using gdb.
>
> >> Alternatively, what happens when you do some "dummy"-work that doesn't
> >> use signals and no other libraries?
>
> >> Diez
>
> > About some "dummy" code:
>
> > #!/usr/bin/env python
> > # -*- coding: utf-8 -*-
>
> > import sys
> > import os
> > import time
>
> > from PyQt4 import QtCore, QtGui
>
> > class Job(QtCore.QRunnable):
> >    def __init__(self, name):
> >            QtCore.QRunnable.__init__(self)
> >            self._name = name
>
> >    def run(self):
> >            time.sleep(10)
> >            print self._name
>
> >    def autoDelete(self):
> >            return self._auto
>
> >    def setAutoDelete(self, auto):
> >            self._auto = auto
>
> > if __name__ == "__main__":
>
> >    app = QtGui.QApplication(sys.argv)
>
> >    QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
>
> >    j = Job("Job-1")
> >    j.setAutoDelete(True)
> >    QtCore.QThreadPool.globalInstance().start(j)
>
> > Even this code not work. On the last line of code
> > ( QtCore.QThreadPool.globalInstance().start(j) ) i get the error:
>
> >>> An unhandled win32 exception occured in python.exe
>
> Hm. I suggest you take this to the PyQt mailinglist. Phil Thompson is
> very responsive.
>
> Diez

Thanks you, Diez. Thanks for your time.
I already wrote to PyQt mailing list, but yet no get answer.

I will be waiting and try to write Phil Thompson.