'If PyQt4/PyQt5 is already imported, importing PyQt5/PyQt4 will fail
so we need to test in a subprocess (as for Gtk3).'

def check_requirements(self):

    try:
        p = multiprocessing.Pool()
    except:
        try:
            msg = self.callback(self)
        except RuntimeError:
            raise CheckFailed('Could    not    import:    are    PyQt4    &    PyQt5    both    installed?')
    else:
        try:
            res = p.map_async(self.callback, [self])
            msg = res.get(timeout=10)[0]
        except multiprocessing.TimeoutError:
            p.terminate()
            raise CheckFailed('Check    timed    out')
        except:
            p.close()
            raise
        else:
            p.close()
        finally:
            p.join()
    return msg
