diff --git a/clearml_agent/commands/worker.py b/clearml_agent/commands/worker.py index 3a3cbcf..d1a4949 100644 --- a/clearml_agent/commands/worker.py +++ b/clearml_agent/commands/worker.py @@ -1882,6 +1882,9 @@ class Worker(ServiceCommandSection): base_interpreter=package_api.requirements_manager.get_interpreter(), requirement_substitutions=[OnlyExternalRequirements], ) + # manually update the current state, + # for the external git reference chance (in the replace callback) + package_api.requirements_manager.update_installed_packages_state(package_api.freeze()) # make sure we run the handlers cached_requirements = \ {k: package_api.requirements_manager.replace(requirements[k] or '') @@ -2244,6 +2247,9 @@ class Worker(ServiceCommandSection): base_interpreter=package_api.requirements_manager.get_interpreter(), requirement_substitutions=[OnlyExternalRequirements] ) + # manually update the current state, + # for the external git reference chance (in the replace callback) + package_api.requirements_manager.update_installed_packages_state(package_api.freeze()) # make sure we run the handlers cached_requirements = \ {k: package_api.requirements_manager.replace(requirements[k] or '') diff --git a/clearml_agent/helper/package/external_req.py b/clearml_agent/helper/package/external_req.py index 6c87d0f..fc1a0c4 100644 --- a/clearml_agent/helper/package/external_req.py +++ b/clearml_agent/helper/package/external_req.py @@ -174,5 +174,11 @@ class OnlyExternalRequirements(ExternalRequirements): # Do not store the skipped requirements # mark skip package if super(OnlyExternalRequirements, self).match(req): + if self.is_already_installed(req): + print("No need to reinstall \'{}\' from VCS, " + "the exact same version is already installed".format(req.name)) + return Text('') + return self._add_vcs_credentials(req, self._session) + return Text('')