Repository navigation
Replies: 1 comment
|
Confirmed all three cases against the code, and the case 2 idea is right: the Opened #14024 for case 2. Version-only installs now pass One tradeoff: an explicit Case 3 I'd document rather than change: with no mise-managed Python, uv uses a AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: 2.1.288. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
A
pypi:/pipx:tool installed with uv keeps a venv whosepythonlinks to the interpreter uv chose. When CI caches the mise data dir (for example withjdx/mise-action), the tool works on a warm cache run only if that interpreter is also restored. Today that depends on how the tool was installed:1. Graph-locked install (
mise lockwith uv >= 0.12.10)mise runs
uv sync --frozen --no-python-downloads --python <mise python>. The venv links toinstalls/python/<version>/bin/python. Deterministic and self-contained.2. Version-only install, python managed by mise
mise runs
uv tool install <pkg>==<version>without--pythonand puts mise's Python first onPATH. uv's default preference ismanaged, so if a uv-managed Python already exists, uv uses it instead of mise's. One way this happens: withpython.uv_venv_auto = "create|source",mise installcreated the project venv with a bareuv venv(fixed in #13981), uv downloaded CPython into~/.local/share/uv/python, and the tool was built on that download. A restored cache then has the tool but not its interpreter, and the tool fails withcouldn't exec process.When uv does pick mise's Python,
fix_venv_python_symlinkrewrites the link toinstalls/python/X.Y, which looks like the intended outcome.3. Version-only install, no Python managed by mise
uv uses a Python from
PATH(/usr/bin/python3, or asetup-pythontoolcache path that includes the patch version) or downloads one into~/.local/share/uv/python. Either way the venv depends on an interpreter outside the mise data dir.Ideas
--python <mise python>touv tool installwhen mise manages Python, like the graph path binds its interpreter. The result then no longer depends on what uv has downloaded before.Happy to open a PR for case 2 if that direction fits.
AI-assisted — Tool: Claude Code; model: anthropic/claude-opus-5-5; version: 2.1.289.
All reactions