当前位置: 首页 > news >正文

使用uvx运行和安装Python应用程序

许多 Python 包提供了可作为工具使用的应用程序。uv 使用uvx调用和安装这些工具。

uvx等价于uv tool run

运行工具

uvx可以运行工具而不需要安装它。例如:

uvx ruff

在工具名称后面可以加参数。例如:

$ uvx pycowsay hello from uvInstalled 1 package in 3ms
~/.cache/uv/archive-v0/NFJJ3_C1qUMRjEyWHZVtN/lib/python3.12/site-packages/pycowsay/main.py:23: SyntaxWarning: invalid escape sequence '\ '"""------------
< hello world! >------------\   ^__^\  (oo)\_______(__)\       )\/\||----w |||     ||

命令和包名不同的情况

调用 uvx ruff 时,uv 会安装 ruff 包,该包提供 ruff 命令。但有时包名和其提供的命令名并不一致。

这种情况下,可以使用 --from 选项从特定包中调用命令,例如,http 命令由 httpie 包提供,可这样调用:

uvx --from httpie http

指定特定的版本

使用以下命令运行工具的特定版本:

uvx ruff@0.3.0 check

运行工具的最新版本:

uvx ruff@latest check

--from选项也可以用来指定包的版本:

uvx --from 'ruff==0.3.0' ruff check

或者,约束一个版本范围:

uvx --from 'ruff>0.2.0,<0.3.0' ruff check

指定额外功能

--from 选项可用于运行带有额外功能的工具:

uvx --from 'mypy[faster-cache,reports]' mypy --xml-report mypy_report

也可以和版本选择进行组合:

uvx --from 'mypy[faster-cache,reports]==1.13.0' mypy --xml-report mypy_report

指定不同来源

--from 选项可用于从替代源安装工具。

例如从git拉取:

uvx --from git+https://github.com/httpie/cli httpie

指定git分支:

uvx --from git+https://github.com/httpie/cli@master httpie

指定标记:

uvx --from git+https://github.com/httpie/cli@3.2.4 httpie

带插件的命令

可以包含额外的依赖项,例如在运行 mkdocs 时包含 mkdocs-material 插件:

uvx --with mkdocs-material mkdocs --help

安装工具

对常用工具,最好安装到持久化环境中,并添加到PATH。

例如安装ruff:

uv tool install ruff

工具安装完成后,其可执行文件被放置到PATH的一个bin目录,之后运行tool就不再需要uv tool了。

如果该路径未被添加到 PATH 中,系统会显示警告信息,此时可使用uv tool update-shell命令将其添加到 PATH。

现在可以直接运行ruff:

ruff --version

需要注意的是,安装工具并不会使得它的模块在本虚拟环境中可用。例如执行以下命令会失败。

python -c "import ruff"

升级工具

要升级一个工具,运行uv tool upgrade:

uv tool upgrade ruff

工具升级会遵循安装工具时指定的版本约束。例如,先执行 uv tool install ruff >=0.3,<0.4 安装 Ruff,之后运行 uv tool upgrade ruff 会将 Ruff 升级到 >=0.3,<0.4 范围内的最新版本。

若要替换版本约束,需使用 uv tool install 重新安装该工具:

uv tool install ruff>=0.4

升级所有工具:

uv tool upgrade --all

指定Python版本

uv在运行、安装、升级工具时,将使用默认的Python版本。你也可以指定Python版本。

uvx --python 3.10 ruff
uv tool install --python 3.10 ruff
uv tool upgrade --python 3.10 ruff
http://www.dtcms.com/a/287454.html

相关文章:

  • GEO营销:AI时代的搜索优化新赛道——从DeepSeek爆火看生成式引擎优化的崛起
  • 边界条件汇总
  • 初等数论Ⅱ
  • Spring监听器
  • (LeetCode 面试经典 150 题) 49. 字母异位词分组 (哈希表)
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • [故障诊断方向]SNNs:针对小样本轴承故障诊断的孪生神经网络模型
  • ICT测试原理之shorts(短路)测试原理
  • 【2025最新】 .NET FrameWork微软离线运行库合集,一键安装版
  • 【数据类型与变量】
  • python爬虫之获取渲染代码
  • SAP的数据转换和处理
  • RabbitMQ01——基础概念、docker配置rabbitmq、内部执行流程、五种消息类型、测试第一种消息类型
  • 西门子 S7-1500 PLC 电源选型指南:系统电源与负载电源的核心区别
  • SPARKLE:深度剖析强化学习如何提升语言模型推理能力
  • 商业秘密的法律属性与保护路径探析
  • Vue的路由模式的区别和原理
  • RTSP推流客户端-ffmpeg和live555对比
  • Oracle Database 23ai 技术细节与医疗 AI 应用
  • windows docker-01-desktop install windows10 + wls2 启用
  • 加法速算之尾数法
  • 语音识别技术:从声音到文字的 AI 魔法
  • 多云联邦集群管理(1)(集群联邦管理)
  • 基于大模型打造故障预警服务器巡检机器人
  • World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion
  • 【C# in .NET】19. 探秘抽象类:具体实现与抽象契约的桥梁
  • 用逻辑回归(Logistic Regression)处理鸢尾花(iris)数据集
  • 【专业扫盲】源极退化电阻
  • min_25筛学习笔记+牛客多校02E
  • NumPy 30分钟速成计划