code: def import_modname(modname):
      r
      # The __import__ statment is weird
      if util_inject.PRINT_INJECT_ORDER:
          if modname not in sys.modules:
              util_inject.noinject(modname, N=2, via='ut.import_modname')
      if '.' in modname:
          fromlist = modname.split('.')[-1]
          fromlist_ = list(map(str, fromlist))  # needs to be ascii for python2.7
          module = __import__(modname, {}, {}, fromlist_, 0)
      else:
          module = __import__(modname, {}, {}, [], 0)
      return module
docs: r"""
      Args:
          modname (str):  module name
  
      Returns:
          module: module
  
      CommandLine:
          python -m utool.util_import --test-import_modname
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_import import *  # NOQA
          >>> modname_list = [
          >>>     'utool',
          >>>     'utool._internal',
          >>>     'utool._internal.meta_util_six',
          >>>     'utool.util_path',
          >>>     #'utool.util_path.checkpath',
          >>> ]
          >>> modules = [import_modname(modname) for modname in modname_list]
          >>> result = ([m.__name__ for m in modules])
          >>> assert result == modname_list