diff --git a/studio/backend/core/export/worker.py b/studio/backend/core/export/worker.py index 5d54f75d8f..a581813221 100644 --- a/studio/backend/core/export/worker.py +++ b/studio/backend/core/export/worker.py @@ -47,18 +47,22 @@ def _activate_transformers_version(model_name: str, project_root: str) -> None: logger.warning(".venv_t5 not found at %s — installing at runtime", venv_t5) import subprocess as sp os.makedirs(venv_t5, exist_ok=True) - sp.run( + r1 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "transformers==5.1.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - sp.run( + r2 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "huggingface_hub==1.3.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - if os.path.isdir(venv_t5): - sys.path.insert(0, venv_t5) + if r1.returncode != 0 or r2.returncode != 0: + raise RuntimeError( + f"Failed to install transformers 5.x into {venv_t5}. " + f"pip returncode: transformers={r1.returncode}, huggingface_hub={r2.returncode}" + ) + sys.path.insert(0, venv_t5) else: logger.info("Using default transformers (4.57.x) for %s", model_name) diff --git a/studio/backend/core/inference/worker.py b/studio/backend/core/inference/worker.py index cac5dacd6e..99ead90f9c 100644 --- a/studio/backend/core/inference/worker.py +++ b/studio/backend/core/inference/worker.py @@ -49,18 +49,22 @@ def _activate_transformers_version(model_name: str, project_root: str) -> None: logger.warning(".venv_t5 not found at %s — installing at runtime", venv_t5) import subprocess as sp os.makedirs(venv_t5, exist_ok=True) - sp.run( + r1 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "transformers==5.1.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - sp.run( + r2 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "huggingface_hub==1.3.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - if os.path.isdir(venv_t5): - sys.path.insert(0, venv_t5) + if r1.returncode != 0 or r2.returncode != 0: + raise RuntimeError( + f"Failed to install transformers 5.x into {venv_t5}. " + f"pip returncode: transformers={r1.returncode}, huggingface_hub={r2.returncode}" + ) + sys.path.insert(0, venv_t5) else: logger.info("Using default transformers (4.57.x) for %s", model_name) diff --git a/studio/backend/core/training/worker.py b/studio/backend/core/training/worker.py index c937b3f110..1ed6b00131 100644 --- a/studio/backend/core/training/worker.py +++ b/studio/backend/core/training/worker.py @@ -44,18 +44,22 @@ def _activate_transformers_version(model_name: str, project_root: str) -> None: logger.warning(".venv_t5 not found at %s — installing at runtime", venv_t5) import subprocess as sp os.makedirs(venv_t5, exist_ok=True) - sp.run( + r1 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "transformers==5.1.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - sp.run( + r2 = sp.run( [sys.executable, "-m", "pip", "install", "--target", venv_t5, "--no-deps", "huggingface_hub==1.3.0"], stdout=sp.PIPE, stderr=sp.STDOUT, ) - if os.path.isdir(venv_t5): - sys.path.insert(0, venv_t5) + if r1.returncode != 0 or r2.returncode != 0: + raise RuntimeError( + f"Failed to install transformers 5.x into {venv_t5}. " + f"pip returncode: transformers={r1.returncode}, huggingface_hub={r2.returncode}" + ) + sys.path.insert(0, venv_t5) else: logger.info("Using default transformers (4.57.x) for %s", model_name)