diff --git a/clearml_agent/commands/worker.py b/clearml_agent/commands/worker.py index 7c9f160..c6588e3 100644 --- a/clearml_agent/commands/worker.py +++ b/clearml_agent/commands/worker.py @@ -3569,8 +3569,8 @@ def install_virtualenv( executable_version, executable_version_suffix, executable_name = \ self.find_python_executable_for_version(def_python_version) - self._session.config.put("agent.default_python", executable_version_suffix) - self._session.config.put("agent.python_binary", executable_name) + self._session.config.put("agent.default_python", executable_version_suffix) + self._session.config.put("agent.python_binary", executable_name) venv_dir = Path(venv_dir) if venv_dir else \ Path(self._session.config["agent.venvs_dir"], executable_version_suffix) diff --git a/clearml_agent/helper/package/poetry_api.py b/clearml_agent/helper/package/poetry_api.py index 5a6de53..ea790d9 100644 --- a/clearml_agent/helper/package/poetry_api.py +++ b/clearml_agent/helper/package/poetry_api.py @@ -40,11 +40,11 @@ def new_func(self, *args, **kwargs): class PoetryConfig: - def __init__(self, session, interpreter=None): + def __init__(self, session): # type: (Session, str) -> None self.session = session self._log = session.get_logger(__name__) - self._python = interpreter or sys.executable + self._python = sys.executable # default, overwritten from session config in initialize() self._initialized = False @property @@ -88,6 +88,11 @@ def _config(self, *args, **kwargs): @_guard_enabled def initialize(self, cwd=None): if not self._initialized: + # use correct python version -- detected in Worker.install_virtualenv() and written to + # session + if self.session.config.get("agent.python_binary", None): + self._python = self.session.config.get("agent.python_binary") + if self.session.config.get("agent.package_manager.poetry_version", None) is not None: version = str(self.session.config.get("agent.package_manager.poetry_version"))