fix: use venv_t5_root() so .venv_t5 respects UNSLOTH_STUDIO_HOME

This commit is contained in:
Roland Tannous 2026-03-17 18:38:55 +00:00
commit 9e8b87a0fe
8 changed files with 18 additions and 11 deletions

View file

@ -44,9 +44,8 @@ def _activate_transformers_version(model_name: str) -> None:
resolved = _resolve_base_model(model_name)
if needs_transformers_5(resolved):
venv_t5 = os.path.join(
os.path.expanduser("~"), ".unsloth", "studio", ".venv_t5"
)
from utils.paths.storage_roots import venv_t5_root
venv_t5 = str(venv_t5_root())
if os.path.isdir(venv_t5):
sys.path.insert(0, venv_t5)
logger.info("Activated transformers 5.x from %s", venv_t5)

View file

@ -46,9 +46,8 @@ def _activate_transformers_version(model_name: str) -> None:
resolved = _resolve_base_model(model_name)
if needs_transformers_5(resolved):
venv_t5 = os.path.join(
os.path.expanduser("~"), ".unsloth", "studio", ".venv_t5"
)
from utils.paths.storage_roots import venv_t5_root
venv_t5 = str(venv_t5_root())
if os.path.isdir(venv_t5):
sys.path.insert(0, venv_t5)
logger.info("Activated transformers 5.x from %s", venv_t5)

View file

@ -40,9 +40,8 @@ def _activate_transformers_version(model_name: str) -> None:
resolved = _resolve_base_model(model_name)
if needs_transformers_5(resolved):
venv_t5 = os.path.join(
os.path.expanduser("~"), ".unsloth", "studio", ".venv_t5"
)
from utils.paths.storage_roots import venv_t5_root
venv_t5 = str(venv_t5_root())
if os.path.isdir(venv_t5):
sys.path.insert(0, venv_t5)
logger.info("Activated transformers 5.x from %s", venv_t5)

View file

@ -427,7 +427,8 @@ _VLM_MODEL_TYPES = {
}
# Pre-computed .venv_t5 path and backend dir for subprocess version switching.
_VENV_T5_DIR = str(Path.home() / ".unsloth" / "studio" / ".venv_t5")
from utils.paths.storage_roots import venv_t5_root
_VENV_T5_DIR = str(venv_t5_root())
_BACKEND_DIR = str(Path(__file__).resolve().parent.parent.parent)
# Inline script executed in a subprocess with transformers 5.x activated.

View file

@ -8,6 +8,7 @@ Path utilities for model and dataset handling
from .path_utils import normalize_path, is_local_path, is_model_cached, get_cache_path
from .storage_roots import (
studio_root,
venv_t5_root,
assets_root,
datasets_root,
dataset_uploads_root,
@ -36,6 +37,7 @@ __all__ = [
"is_model_cached",
"get_cache_path",
"studio_root",
"venv_t5_root",
"assets_root",
"datasets_root",
"dataset_uploads_root",

View file

@ -15,6 +15,11 @@ def studio_root() -> Path:
return Path.home() / ".unsloth" / "studio"
def venv_t5_root() -> Path:
"""Pre-installed transformers 5.x directory, respects UNSLOTH_STUDIO_HOME."""
return studio_root() / ".venv_t5"
def cache_root() -> Path:
"""Central cache directory for all studio downloads (models, datasets, etc.)."""
return studio_root() / "cache"

View file

@ -61,7 +61,8 @@ TRANSFORMERS_5_VERSION = "5.3.0"
TRANSFORMERS_DEFAULT_VERSION = "4.57.1"
# Pre-installed directory for transformers 5.x — created by setup.sh / setup.ps1
_VENV_T5_DIR = str(Path.home() / ".unsloth" / "studio" / ".venv_t5")
from utils.paths.storage_roots import venv_t5_root
_VENV_T5_DIR = str(venv_t5_root())
def _resolve_base_model(model_name: str) -> str:

View file

@ -230,6 +230,7 @@ else
# Local: create venv under studio home (shared location, not in repo)
# Configurable via UNSLOTH_STUDIO_HOME; defaults to ~/.unsloth/studio
STUDIO_HOME="${UNSLOTH_STUDIO_HOME:-$HOME/.unsloth/studio}"
echo " Studio home: $STUDIO_HOME"
VENV_DIR="$STUDIO_HOME/.venv"
VENV_T5_DIR="$STUDIO_HOME/.venv_t5"
mkdir -p "$STUDIO_HOME"