uvx 临时运行 Python 工具,一条命令不污染环境 uvx 临时运行 Python 工具一条命令不污染环境【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uvCI 里跑一次 lint 但不想污染当前环境——uv 的uvxuv tool run的别名在隔离的临时环境里运行 Python 工具跑完即弃天天用的工具则用uv tool install装进独立环境互不打架。 不装任何东西先跑一次uvx ruff check .uv 是 Rust 实现的首次自动下载 ruff 到临时环境之后命中缓存几乎秒开临时环境用完即删你当前项目的.venv一个字节都没变。这就是它比pip install --user干净的原因——依赖根本不落进任何现有环境。把版本钉死CI 结果可复现临时跑解决了跑一次但同一行命令在两台机器上解析出不同版本排查半天。给工具名加版本号即可钉住uvx ruff0.3.0 check .跑的就是 0.3.0谁的本机环境是什么版本都不影响结果。需要版本范围时只认精确版本改成--from ruff0.3,0.4 ruff check的写法。工具本身还要额外依赖时用--with塞进临时环境例如uvx --with mkdocs-material mkdocs serve。常用工具固定安装加进 PATH每次重新解析还是浪费高频工具不如装下来。装之前先想清楚两者分工uvxuv tool install适合临时跑一次天天在用环境跑完即弃持久独立环境PATH不用配bin 目录需在 PATHuv tool install ruff uv tool update-shell工具会被装进独立的工具环境默认在~/.local/share/uv/tools下可用UV_TOOL_BIN_DIR环境变量改位置update-shell把它的 bin 目录写进 PATH 配置重开终端后直接敲ruff --version就能用。注意它只装可执行文件import ruff这类用法不受影响——这正是隔离的意义。换台机器工具清单原样搬过去版本钉好只是单机的事新机器怎么保持一致把本机清单连同版本约束列出来uv tool list --show-version-specifiers uv tool install ruff0.3.0照着清单在新机器上重装约束完全一致之后用uv tool upgrade --all一键把全部工具升到约束内的最新版。⚠️ 避坑这几个报错最常见装完提示 command not found→ 工具的 bin 目录还没进 PATH → 跑uv tool update-shell后重开终端。uvx里import自己项目的代码报 ModuleNotFoundError→ uvx 的临时环境和当前项目完全隔离 → 需要项目代码的场景如 pytest、mypy改用uv run。包名和命令名不一致→ 比如 httpie 包提供的是http命令 →uvx --from httpie http显式指定包。uvx ruff0.3报语法错→只支持精确版本 → 范围约束写进--fromuvx --from ruff0.3,0.4 ruff check。命令速查命令用途一句话备注uvx 工具 [参数]临时运行不安装第二次起走缓存uvx 工具版本钉精确版本范围版本改用--from 包1,2uvx --with 依赖 工具临时环境加依赖如 mkdocs 加主题uv tool install 工具持久安装常用工具每个包装进独立环境uv tool update-shellbin 目录加入 PATH装完找不到命令时跑uv tool upgrade --all全部工具升最新单个用uv tool upgrade 工具uv tool list --show-version-specifiers列出工具及版本约束换机器时照着重装回到开头那个 CI 场景一行uvx把 lint 跑完环境干干净净版本钉得死死的。【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考