Any ROOT GUI freezes when launched from Python IDLE in Mac

It was running all fine before when used PyRoot with ROOT5 in Mac. But recently due to OS upgrade, I installed ROOT6. Things gets very weird. Any graphics launched from the Python IDLE would freeze though IDLE itself runs fine. A simple example like :
import ROOT
tb = ROOT.TBrowser()

the ROOT icon would then appear in the dock and the cursor becomes a spinning wheel forever. The ROOT object browser would never comes up. But if I launched it in the python command line, everything looks fine. I have reinstalled python and root6 for many times and it won’t work. My current versions are Python 2.7.13 and ROOT 6.08/06, both installed through Brew. My OS is El Capitan.

Any idea what is going on? Thanks.

Yeah, easy, do not run it from idle. ROOT Cocoa/event loop must work on the main thread.

Thanks. But it is much easier to test something in IDLE. It works before, does it? Or My mind is confused.

Well, you probably know better if it worked before, I never tried to run/execute ROOT from idle (and honestly, never needed it). Cocoa works now as it worked before - it always required the main thread to run NSApplication/event loop/UI logic on. You can disable Cocoa back-end and use X11/XQuartz based one if you really need it (unfortunately I do no know how you do this nowadays with cmake, something like -Dcocoa=OFF when configuring ROOT?)

cmake  -Dcocoa=OFF -Dx11=ON 

Thanks, Olivier. I do not care though, since I never had to disable Cocoa :smiley:

1 Like

Thanks. That helps a lot.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.