[PyQt] multiprocessing with QApplication

Luke Campagnola lcampagn at email.unc.edu
Fri Jun 15 02:50:36 BST 2012


On Wed, Jun 13, 2012 at 7:53 AM, Kovid Goyal <kovid at kovidgoyal.net> wrote:
> On Mon, Jun 11, 2012 at 01:59:35PM -0400, Luke Campagnola wrote:
>> I agree with you about the multiprocessing package--I really only use it
>> for the ease of passing python objects between processes. (I use
>> multiprocessing.Pipe(), which I believe uses the Listener/Client system you
>> mentioned). I'll definitely try using this with subprocess instead. Thanks
>> for the EINTR warning; I'm sure that would have taken another hour or two
>> for me to work out :)
>
> That's interesting, how are you using Pipe? More specifically, how are
> you passing a Connection object to the worker process? Connection
> objects cannot be unpickled, at least in python 2.7, see:
> http://bugs.python.org/issue4892

I just meant that I was previously using Pipe() with
multiprocessing.Process(), which as you said uses fork (and I have no
idea how they implemented it on Windows).

I'm currently using multiprocessing.Listener/Client with sockets to
pass objects between processes started with subprocess.Popen(); works
well enough. I also tried using multiprocessing.BaseManager and proxy
objects, but the whole system seemed a bit inflexible so I'm working
on a custom proxy system instead (the goal is to get QObject proxies
that can connect signals between processes).

Luke


More information about the PyQt mailing list