Attempt to set up a common framework for the dependencies. Since NeuroTools will be a lot of heterogeneous subparts, a lots of import will be done. I think, as proposed by Eilif, that we should try to gather as much as possible of those import and check in the init file. Then warning messages will be automatically displayed according to what you're loading. So the idea is that you add non-specific import in the init dependencies dictionnary. Then, in your code, you just have to import the function check_dependency() from NeuroTools.init. By doing check_dependency(.. your package name ...), you'll know if this is present or not, and if not a message is sent to the user automatically. Hope all the packages are working