def create_virtual_env(
    venv_path: str, requirements_paths: Iterable[str], python_path: str, verbose: bool
) -> None:
    """Creates a new virtual environment and then installs dependencies.

    Args:
        venv_path: Where to put the virtual environment's state.
        requirements_paths: Location of requirements files to -r install.
        python_path: The python binary to use.
        verbose: When set, more progress output is produced.
    """
    optional_quiet = [] if verbose else ['--quiet']
    shell_tools.run(
        ['virtualenv', *optional_quiet, '-p', python_path, venv_path], stdout=sys.stderr
    )
    pip_path = os.path.join(venv_path, 'bin', 'pip')
    for req_path in requirements_paths:
        shell_tools.run([pip_path, 'install', *optional_quiet, '-r', req_path], stdout=sys.stderr)
Creates a new virtual environment and then installs dependencies.

    Args:
        venv_path: Where to put the virtual environment's state.
        requirements_paths: Location of requirements files to -r install.
        python_path: The python binary to use.
        verbose: When set, more progress output is produced.
    
dev_tools/env_tools.py