Skip to content

uv tool install smth picks the "worst" Python #18111

@dimaqq

Description

@dimaqq

Summary

I've managed to corner my machine to a setup, where uv tool install appears to select the "worst" Python:

  • Python3.9 (from the OS?) at /usr/bin/python3
  • Python3.10 (from Python.org) as /usr/local/bin/python3
  • Python3.11, 3.12, 3.13, 3.13t, 3.14, 3.14t, 3.15, 3.15t (from Python.org) in /usr/local
  • no modern pythons installed using uv python install
  • Python3.8 installed using us python install 3.8

Note that uv python list sees all of these options.

In this config, uv tool install tox --with tox-uv installs the tool using Python 3.8, which leads to ancient tox-uv dep being used (also it's slow, but whatever).

And tox with the ancient plugin fails with tox-dev/tox-uv#230

Is it something I did to myself?
Yes.

Is it something another developer could run into?
Yes, because when the system doesn't provide some old python and I gotta run tests in some older project, I'd end up uv python install-ing that old version.
Now I'm getting hit because of that and quite unexpectedly.

Work-arounds:

  • either uv tool install -p 3.12 tox --with tox-uv or 3.10 or whatever is not EOL
  • or uv python install 3.12; uv tool uninstall --all; uv tool install ..., then that gets picked.

So.. it's a bit of a foot-gun.
Could uv perhaps understand which Python versions are EOL?

Platform

macos

Version

uv 0.10.4 (Homebrew 2026-02-17)

Python version

Python 3.10.11

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions