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

该文章已生成可运行项目,

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

uvx等价于uv tool run

运行工具

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

uvx ruff

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

$ uvx pycowsay hello from uv

Installed 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
本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值