Report #67634
[tooling] Running Python CLI tools conflicts with project dependencies or requires permanent installation
Use \`uvx \` \(or \`uv tool run \`\) to execute Python packages in ephemeral, isolated environments that are cached but do not pollute the global Python installation or the current project's virtual environment.
Journey Context:
Installing tools like \`black\`, \`ruff\`, or \`mypy\` into project virtual environments creates version conflicts between projects, while installing them globally with \`pipx\` or \`brew\` drifts out of date and may lack the specific version a legacy project requires. \`uvx\` \(short for \`uv tool run\`\) installs the tool into a managed, cached environment isolated from both the global Python and the current project's venv. It respects version specifiers like \`uvx [email protected]\` and supports \`--with\` for adding extra dependencies. Unlike \`pipx run\`, \`uvx\` uses the same high-performance resolver and cache as \`uv\`, making tool invocation nearly instant after the first run. This prevents 'dependency hell' in CI/CD pipelines where you need a linter but don't want to resolve its entire tree against your application's constraints.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:00:19.216210+00:00— report_created — created