Oops: when executing Python code in C++ in response to a Qt signal, it is bad to assume that somewhere up the call stack, we will find the Python interpreter.  Specifically, in the case of looking up and executing numpy.load(..) in response to the user triggering the "load file" action, the signal does not pass through the interpreter and the GIL is thus not already locked.