'Print a report to stdout, listing the found modules with their
paths, as well as modules that are missing, or seem to be missing.'

def report(self):

    print
    print ('        %-25s    %s' % ('Name', 'File'))
    print ('        %-25s    %s' % ('----', '----'))
    keys = self.modules.keys()
    keys.sort()
    for key in keys:
        m = self.modules[key]
        if m.__path__:
            print 'P',
        else:
            print 'm',
        print ('%-25s' % key), (m.__file__ or '')
    (missing, maybe) = self.any_missing_maybe()
    if missing:
        print
        print 'Missing    modules:'
        for name in missing:
            mods = self.badmodules[name].keys()
            mods.sort()
            print '?', name, 'imported    from', ',    '.join(mods)
    if maybe:
        print
        print 'Submodules    that    appear    to    be    missing,    but    could    also    be',
        print 'global    names    in    the    parent    package:'
        for name in maybe:
            mods = self.badmodules[name].keys()
            mods.sort()
            print '?', name, 'imported    from', ',    '.join(mods)
