mirror of
https://github.com/BerriAI/litellm.git
synced 2026-08-28 05:25:59 +00:00
fix(install): pass an explicit Python version request to uv tool install
uv selects an interpreter before resolving dependencies, so with no --python request the stock macOS /usr/bin/python3 (3.9.6) satisfies the unconstrained request and resolution then fails against litellm's requires-python (>=3.10,<3.15) instead of downloading a managed Python. Request the requires-python range explicitly in install-cli.sh and install.sh so uv reuses a compatible system interpreter when present and downloads a managed one otherwise. The manual-fallback hint in the die message carries the same flag so it no longer reproduces the failure.
This commit is contained in:
parent
24123269cc
commit
b0899923f8
2 changed files with 12 additions and 10 deletions
|
|
@ -95,9 +95,10 @@ if [ -z "$UV_BIN" ] || [ "${CURRENT_UV_VERSION:-}" != "$UV_VERSION" ]; then
|
|||
fi
|
||||
|
||||
# ── install ────────────────────────────────────────────────────────────────
|
||||
# --python-preference system: reuse a compatible system Python when present,
|
||||
# otherwise download a managed one. Either way uv honours litellm's requires-python,
|
||||
# so a too-old (3.9) or too-new (3.14+) system Python is skipped, not forced.
|
||||
# --python mirrors requires-python in pyproject.toml (keep in sync): uv selects the
|
||||
# interpreter before resolving, so an unconstrained request accepts a too-old system
|
||||
# Python (stock macOS ships 3.9) and fails resolution instead of downloading a
|
||||
# managed one. --python-preference system still reuses a compatible system Python.
|
||||
echo ""
|
||||
if [ -n "${LITELLM_CLI_REF:-}" ]; then
|
||||
header "Installing litellm[cli] from ${LITELLM_CLI_REF}…"
|
||||
|
|
@ -106,8 +107,8 @@ else
|
|||
fi
|
||||
echo ""
|
||||
|
||||
"$UV_BIN" tool install --python-preference system --force "${LITELLM_PACKAGE}" \
|
||||
|| die "uv tool install failed. Try manually: $UV_BIN tool install '${LITELLM_PACKAGE}'"
|
||||
"$UV_BIN" tool install --python '>=3.10,<3.15' --python-preference system --force "${LITELLM_PACKAGE}" \
|
||||
|| die "uv tool install failed. Try manually: $UV_BIN tool install --python '>=3.10,<3.15' '${LITELLM_PACKAGE}'"
|
||||
|
||||
# ── find the lite binary installed by uv tool ──────────────────────────────
|
||||
SCRIPTS_DIR="$("$UV_BIN" tool dir --bin)"
|
||||
|
|
|
|||
|
|
@ -100,11 +100,12 @@ else
|
|||
fi
|
||||
echo ""
|
||||
|
||||
# --python-preference system: reuse a compatible system Python when present,
|
||||
# otherwise download a managed one. Either way uv honours litellm's requires-python,
|
||||
# so a too-old (3.9) or too-new (3.14+) system Python is skipped, not forced.
|
||||
"$UV_BIN" tool install --python-preference system --force "${LITELLM_PACKAGE}" \
|
||||
|| die "uv tool install failed. Try manually: $UV_BIN tool install '${LITELLM_PACKAGE}'"
|
||||
# --python mirrors requires-python in pyproject.toml (keep in sync): uv selects the
|
||||
# interpreter before resolving, so an unconstrained request accepts a too-old system
|
||||
# Python (stock macOS ships 3.9) and fails resolution instead of downloading a
|
||||
# managed one. --python-preference system still reuses a compatible system Python.
|
||||
"$UV_BIN" tool install --python '>=3.10,<3.15' --python-preference system --force "${LITELLM_PACKAGE}" \
|
||||
|| die "uv tool install failed. Try manually: $UV_BIN tool install --python '>=3.10,<3.15' '${LITELLM_PACKAGE}'"
|
||||
|
||||
# ── find the litellm binary installed by uv tool ───────────────────────────
|
||||
SCRIPTS_DIR="$("$UV_BIN" tool dir --bin)"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue