You are viewing v0.0.12 version. Click here to see docs for the latest stable version.

Env

An Env is a Runhouse primitive that represents an compute environment.

Env Factory Methods

runhouse.env(reqs: List[Union[str, Package]] = [], conda_env: Optional[Union[str, Dict]] = None, name: Optional[str] = None, setup_cmds: Optional[List[str]] = None, env_vars: Union[Dict, str] = {}, working_dir: Optional[Union[str, Path]] = './', dryrun: bool = True)[source]

Builds an instance of Env.

Parameters:
  • reqs (List[str]) – List of package names to install in this environment.

  • conda_env (Union[str, Dict], optional) – Dict representing conda env, Path to a conda env yaml file, or name of a local conda environment.

  • name (Optional[str], optional) – Name of the environment resource.

  • setup_cmds (Optional[List[str]]) – List of CLI commands to run for setup when the environment is being set up on a cluster.

  • env_vars (Dict or str) – Dictionary of environment variables, or relative path to .env file containing environment variables. (Default: {})

  • working_dir (str or Path) – Working directory of the environment, to be loaded onto the system. (Default: “./”)

  • dryrun (bool, optional) – Whether to run in dryrun mode. (Default: True)

Returns:

The resulting Env object.

Return type:

Env

Example

>>> # regular python env >>> env = rh.env(reqs=["torch", "pip"]) >>> env = rh.env(reqs=["reqs:./"], name="myenv") >>> >>> # conda env, see also rh.conda_env >>> conda_env_dict = >>> {"name": "new-conda-env", "channels": ["defaults"], "dependencies": "pip", {"pip": "diffusers"}) >>> conda_env = rh.env(conda_env=conda_env_dict) # from a dict >>> conda_env = rh.env(conda_env="conda_env.yaml") # from a yaml file >>> conda_env = rh.env(conda_env="local-conda-env-name") # from a existing local conda env >>> conda_env = rh.env(conda_env="conda_env.yaml", reqs=["pip:/accelerate"]) # with additional reqs
runhouse.conda_env(reqs: List[Union[str, Package]] = [], conda_env: Optional[Union[str, Dict]] = None, name: Optional[str] = None, setup_cmds: Optional[List[str]] = None, env_vars: Optional[Dict] = {}, working_dir: Optional[Union[str, Path]] = './', dryrun: bool = True)[source]

Builds an instance of CondaEnv.

Parameters:
  • reqs (List[str]) – List of package names to install in this environment.

  • conda_env (Union[str, Dict], optional) – Dict representing conda env, Path to a conda env yaml file, or name of a local conda environment.

  • name (Optional[str], optional) – Name of the environment resource.

  • setup_cmds (Optional[List[str]]) – List of CLI commands to run for setup when the environment is being set up on a cluster.

  • env_vars (Dict or str) – Dictionary of environment variables, or relative path to .env file containing environment variables. (Default: {})

  • working_dir (str or Path) – Working directory of the environment, to be loaded onto the system. (Default: “./”)

  • dryrun (bool, optional) – Whether to run in dryrun mode. (Default: True)

Returns:

The resulting CondaEnv object.

Return type:

CondaEnv

Example

>>> rh.conda_env(reqs=["torch"]) >>> rh.conda_env(reqs=["torch"], name="resource_name") >>> rh.conda_env(reqs=["torch"], name="resource_name", conda_env={"name": "conda_env"})

Env Class

class runhouse.Env(name: Optional[str] = None, reqs: List[Union[str, Package]] = [], setup_cmds: Optional[List[str]] = None, env_vars: Union[Dict, str] = {}, working_dir: Optional[Union[str, Path]] = None, dryrun: bool = True, **kwargs)[source]
__init__(name: Optional[str] = None, reqs: List[Union[str, Package]] = [], setup_cmds: Optional[List[str]] = None, env_vars: Union[Dict, str] = {}, working_dir: Optional[Union[str, Path]] = None, dryrun: bool = True, **kwargs)[source]

Runhouse Env object.

Note

To create an Env, please use the factory method env().

static from_config(config: dict, dryrun: bool = False)[source]

Create an Env object from a config dict

install(force=False)[source]

Locally install packages and run setup commands.

run(cmds: List[str])[source]

Run command locally inside the environment

to(system: Union[str, Cluster], path=None, mount=False, force_install=False)[source]

Send environment to the system (Cluster or file system). This includes installing packages and running setup commands if system is a cluster.

Example

>>> env = rh.env(reqs=["numpy", "pip"]) >>> cluster_env = env.to(my_cluster) >>> s3_env = env.to("s3", path="s3_bucket/my_env")

Conda Env Class

class runhouse.CondaEnv(conda_yaml: Union[str, Dict], name: Optional[str] = None, reqs: List[Union[str, Package]] = [], setup_cmds: Optional[List[str]] = None, env_vars: Optional[Dict] = {}, working_dir: Optional[Union[str, Path]] = './', dryrun: bool = True, **kwargs)[source]
__init__(conda_yaml: Union[str, Dict], name: Optional[str] = None, reqs: List[Union[str, Package]] = [], setup_cmds: Optional[List[str]] = None, env_vars: Optional[Dict] = {}, working_dir: Optional[Union[str, Path]] = './', dryrun: bool = True, **kwargs)[source]

Runhouse CondaEnv object.

Note

To create a CondaEnv, please use the factory methods env() or conda_env().

static from_config(config: dict, dryrun: bool = True)[source]

Create an Env object from a config dict

install(force=False)[source]

Locally install packages and run setup commands.