No, you should catch the error, and store the error object to a variable.  Then, if someone tries to initialize the IO class, it should raise the error then.  That way imports work, but users get a clear error if they try to use the class.  This allows us to, e.g., build the documentation even if the dependencies are not present.

You can see how hdf5io handles it, specifically lines 202-207 and 266-267.  You don't need the version stuff, so you can skip lines 208-216.