code: def symlink(real_path, link_path, overwrite=False, on_error='raise',
              verbose=2):
      path = normpath(real_path)
      link = normpath(link_path)
      if verbose:
          print('[util_path] Creating symlink: path={} link={}'.format(path, link))
      if os.path.islink(link):
          if verbose:
              print('[util_path] symlink already exists')
          os_readlink = getattr(os, "readlink", None)
          if callable(os_readlink):
              if os_readlink(link) == path:
                  if verbose > 1:
                      print('[path] ... and points to the right place')
                  return link
          else:
              print('[util_path] Warning, symlinks are not implemented on windows')
          if verbose > 1:
              print('[util_path] ... but it points somewhere else')
          if overwrite:
              delete(link, verbose > 1)
          elif on_error == 'ignore':
              return False
      try:
          os_symlink = getattr(os, "symlink", None)
          if callable(os_symlink):
              os_symlink(path, link)
          else:
              win_shortcut(path, link)
      except Exception as ex:
          import utool as ut
          checkpath(link, verbose=True)
          checkpath(path, verbose=True)
          do_raise = (on_error == 'raise')
          ut.printex(ex, '[util_path] error making symlink',
                     iswarning=not do_raise)
          if do_raise:
              raise
      return link