Files
axolotl/scripts/unsloth_install.py
Dan Saunders f912d1bb97 fix
2025-10-02 10:57:09 -04:00

49 lines
1.1 KiB
Python
Executable File

"""Emit the install commands for Unsloth without altering torch."""
from __future__ import annotations
import shutil
import sys
from shlex import quote
try:
import torch
except ImportError as exc: # pragma: no cover
raise ImportError("Install torch via `pip install torch`") from exc
from packaging.version import Version as V
MIN_TORCH = V("2.6.0")
if V(torch.__version__.split("+")[0]) < MIN_TORCH:
raise RuntimeError(
f"Torch {torch.__version__} detected, but Unsloth requires >= {MIN_TORCH}."
)
USE_UV_FLAG = "--uv" in sys.argv[1:]
USE_PIP_FLAG = "--pip" in sys.argv[1:]
if USE_UV_FLAG and USE_PIP_FLAG:
raise SystemExit("Specify only one of --uv or --pip")
if USE_PIP_FLAG:
use_uv = False
elif USE_UV_FLAG:
use_uv = True
else:
use_uv = shutil.which("uv") is not None
python_exe = quote(sys.executable or shutil.which("python3") or "python")
if use_uv:
installer = "uv pip install --system --no-deps"
else:
installer = f"{python_exe} -m pip install --no-deps"
commands = [
f"{installer} unsloth-zoo==2025.9.12",
f'{installer} "unsloth[huggingface]==2025.9.9"',
]
print(" && ".join(commands))