You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Distinguish uv tool install from uvx and emit correct install commands
Issue #133: a user on `uv tool install sqlit-tui` hits the
missing-driver dialog, picks the "(Detected)" option, and gets
`uvx --with PyMySQL sqlit-tui` — which fails with
"An executable named `sqlit-tui` is not provided by package `sqlit-tui`."
Even if the syntax were fixed to `uvx --from sqlit-tui --with PyMySQL sqlit`,
that would only spawn an ephemeral sqlit; his persistent install is
still driver-less.
Root cause: `SystemProbe.is_uvx()` was matching `/uv/tools/`, which is
the `uv tool install` path — not the uvx cache path. Every persistent
install was misclassified as uvx, and the emitted uvx command was
syntactically broken to boot (sqlit-tui is the package name, sqlit is
the executable inside it).
Fix:
- `is_uvx()` now matches `/uv/environments-v2/` and `/uv/cache/archive-v0/`,
where uvx actually stores ephemeral envs.
- New `is_uv_tool_install()` matches `/uv/tools/` and gets its own
`"uv-tool"` detection bucket, with command
`uv tool install --reinstall --with X sqlit-tui` (the only way to
add a dependency to a persistent uv tool install today —
see astral-sh/uv#14746).
- The uvx command is corrected to
`uvx --from sqlit-tui --with X sqlit`.
Closes#133.
0 commit comments