{"id":23865,"library":"hydra-joblib-launcher","title":"Hydra Joblib Launcher","description":"Provides a Joblib-based launcher for Hydra applications, enabling parallel execution of joblib tasks (e.g., using loky or threading backend). Current version 1.2.0 is compatible with Hydra 1.1 and 1.2. Low release cadence; last updated 2021.","status":"active","version":"1.2.0","language":"python","source_language":"en","source_url":"https://github.com/facebookresearch/hydra/tree/main/plugins/hydra_joblib_launcher","tags":["hydra","launcher","joblib","parallel","hydra-plugin"],"install":[{"cmd":"pip install hydra-joblib-launcher","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core Hydra framework required.","package":"hydra-core","optional":false}],"imports":[{"note":"Module lives under hydra_plugins namespace.","wrong":"from hydra_joblib_launcher import JoblibLauncher","symbol":"JoblibLauncher","correct":"from hydra_plugins.hydra_joblib_launcher.joblib_launcher import JoblibLauncher"}],"quickstart":{"code":"import hydra\nfrom omegaconf import DictConfig\n\n@hydra.main(config_name=\"config\", config_path=\".\", version_base=None)\ndef my_app(cfg: DictConfig):\n    # joblib launcher is specified in config\n    print(f\"Working on {cfg.job_id}\")\n\nif __name__ == \"__main__\":\n    my_app()","lang":"python","description":"Example Hydra app using joblib launcher (launcher config set in YAML)."},"warnings":[{"fix":"Stay on hydra-core<1.3 or use the built-in Hydra joblib launcher (experimental) from Hydra 1.3.","message":"Hydra 1.3 changed the launcher API; hydra-joblib-launcher 1.2.0 is not compatible with Hydra 1.3.","severity":"breaking","affected_versions":"hydra-core>=1.3"},{"fix":"Add `hydra.joblib: {backend: 'loky', n_jobs: 4}` to your config.","message":"The plugin must be installed and the config key 'hydra.joblib' must be set in your Hydra config to activate the launcher, else it defaults to the SequentialLauncher.","severity":"gotcha","affected_versions":"all"},{"fix":"Configure n_jobs in the config YAML, not at runtime.","message":"JoblibLauncher does not support dynamic n_jobs changes; n_jobs must be set before the job starts.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from hydra_plugins.hydra_joblib_launcher.joblib_launcher import JoblibLauncher`.","cause":"Incorrect import path; using 'hydra_joblib_launcher' instead of 'hydra_plugins.hydra_joblib_launcher'.","error":"ModuleNotFoundError: No module named 'hydra_joblib_launcher'"},{"fix":"Add `- joblib` to your defaults list or set `hydra.joblib.backend: loky` in your config.","cause":"Missing or misconfigured joblib launcher config in your Hydra configuration.","error":"KeyError: 'hydra.joblib'"},{"fix":"Ensure your config includes `hydra.joblib.backend` and `hydra.joblib.n_jobs`.","cause":"The launcher is not activated because the config key `hydra.joblib` is not defined.","error":"AttributeError: 'NoneType' object has no attribute 'backend'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}