code: def iter_importers(fullname=""):
      
      if fullname.startswith('.'):
          raise ImportError("Relative module names not supported")
      if '.' in fullname:
          # Get the containing package's __path__
          pkg = '.'.join(fullname.split('.')[:-1])
          if pkg not in sys.modules:
              __import__(pkg)
          path = getattr(sys.modules[pkg], '__path__', None) or []
      else:
          for importer in sys.meta_path:
              yield importer
          path = sys.path
      for item in path:
          yield get_importer(item)
      if '.' not in fullname:
          yield ImpImporter()
docs: Yield PEP 302 importers for the given module name
  
      If fullname contains a '.', the importers will be for the package
      containing fullname, otherwise they will be importers for sys.meta_path,
      sys.path, and Python's "classic" import machinery, in that order.  If
      the named module is in a package, that package is imported as a side
      effect of invoking this function.
  
      Non PEP 302 mechanisms (e.g. the Windows registry) used by the
      standard import machinery to find files in alternative locations
      are partially supported, but are searched AFTER sys.path. Normally,
      these locations are searched BEFORE sys.path, preventing sys.path
      entries from shadowing them.
  
      For this to cause a visible difference in behaviour, there must
      be a module or package name that is accessible via both sys.path
      and one of the non PEP 302 file system mechanisms. In this case,
      the emulation will find the former version, while the builtin
      import mechanism will find the latter.
  
      Items of the following types can be affected by this discrepancy:
          imp.C_EXTENSION, imp.PY_SOURCE, imp.PY_COMPILED, imp.PKG_DIRECTORY