code: def create_virtualenv(venvpath, venvargs=None):
      '''
      Run virtualenv from downloaded venvpath using venvargs
      If venvargs is None, then 'venv' will be used as the virtualenv directory
  
      :param str venvpath: Path to root downloaded virtualenv package(must contain
          virtualenv.py)
      :param list venvargs: Virtualenv arguments to pass to virtualenv.py
      '''
      cmd = [join(venvpath, 'virtualenv.py')]
      venv_path = None
      if venvargs:
          cmd += venvargs
          venv_path = abspath(venvargs[-1])
      else:
          cmd += ['venv']
      p = subprocess.Popen(cmd)
      p.communicate(f create_virtualenv(venvpath, venvargs=None):
      '''
      Run virtualenv from downloaded venvpath using venvargs
      If venvargs is None, then 'venv' will be used as the virtualenv directory
  
      :param str venvpath: Path to root downloaded virtualenv package(must contain
          virtualenv.py)
      :param list venvargs: Virtualenv arguments to pass to virtualenv.py
      '''
      cmd = [join(venvpath, 'virtualenv.py')]
      venv_path = None
      if venvargs:
          cmd += venvargs
          venv_path = abspath(venvargs[-1])
      else:
          cmd += ['venv']
      p = subprocess.Popen(cmd)
      p.communicate()
docs: Run virtualenv from downloaded venvpath using venvargs
      If venvargs is None, then 'venv' will be used as the virtualenv directory
  
      :param str venvpath: Path to root downloaded virtualenv package(must contain
          virtualenv.py)
      :param list venvargs: Virtualenv arguments to pass to virtualenv.py