I've taken a closer look and fixed the initial problems you were having with this commit, so you could pull that and the splash and signal handler are taken care of.
I also spotted why it crashed, at least on my end, which is a conflicting use of
argparse in the Python running in Maya with the one running QML. You can address this by tailoring your
os.environ["PYTHONPATH"] which is what QML is getting once booted up. It's safe to change this after Maya start-up as it is only used once to create
sys.path and then not used (at least not by Python itself). I'd recommend you put only Pyblish Base and QML on it.
However I ran into another issue which I am unable to resolve quickly..
Done, don't forget to call `show()`
Entering state: "hidden"
Entering state: "ready"
Entering state: "clean"
Entering state: "alive"
ContextLabel = Maya
WindowTitle = Pyblish (Maya)
WindowSize = [430, 600]
HeartbeatInterval = 60
HiddenSections = ['Collect']
WindowPosition = [100, 100]
Qt: Dead lock detected while activating a BlockingQueuedConnection: Sender is TmainThreadScriptExecutor(0x22218911d20), receiver is TmainThreadScriptExecutor(0x22218911d20)
You can debug the crash by running this line-by-line from mayapy.
>>> from maya import standalone, cmds
>>> import pyblish_qml
You should be seeing the GUI at that point, but it will remain frozen.. Do have a look and let me know if any of that makes sense to you!