diff --git a/trains_agent/backend_api/config/default/agent.conf b/trains_agent/backend_api/config/default/agent.conf index 74b56cf..5319234 100644 --- a/trains_agent/backend_api/config/default/agent.conf +++ b/trains_agent/backend_api/config/default/agent.conf @@ -47,6 +47,10 @@ # additional conda channels to use when installing with conda package manager conda_channels: ["defaults", "conda-forge", "pytorch", ] + # If set to true, Task's "installed packages" are ignored, + # and the repository's "requirements.txt" is used instead + # force_repo_requirements_txt: false + # set the priority packages to be installed before the rest of the required packages # priority_packages: ["cython", "numpy", "setuptools", ] diff --git a/trains_agent/commands/worker.py b/trains_agent/commands/worker.py index e189ac8..4dcfaed 100644 --- a/trains_agent/commands/worker.py +++ b/trains_agent/commands/worker.py @@ -1210,10 +1210,15 @@ class Worker(ServiceCommandSection): execution = self.get_execution_info(current_task) - try: - requirements = current_task.script.requirements - except AttributeError: + if self._session.config.get("agent.package_manager.force_repo_requirements_txt", False): requirements = None + print("[package_manager.force_repo_requirements_txt=true] " + "Skipping requirements, using repository \"requirements.txt\" ") + else: + try: + requirements = current_task.script.requirements + except AttributeError: + requirements = None if not python_version: try: @@ -1430,10 +1435,15 @@ class Worker(ServiceCommandSection): execution = self.get_execution_info(current_task) - try: - requirements = current_task.script.requirements - except AttributeError: + if self._session.config.get("agent.package_manager.force_repo_requirements_txt", False): requirements = None + print("[package_manager.force_repo_requirements_txt=true] " + "Skipping requirements, using repository \"requirements.txt\" ") + else: + try: + requirements = current_task.script.requirements + except AttributeError: + requirements = None try: python_ver = current_task.script.binary