uv可直接运行本地Python脚本,自动解析依赖并创建临时环境;需通过pyproject.toml声明依赖或--with内联指定,运行模块化脚本时须在项目根目录执行。

用 uv 运行本地 Python 脚本文件,无需提前创建虚拟环境或安装依赖,直接执行即可获得接近原生 Python 的启动速度和确定性依赖解析。
安装 uv(如尚未安装)
访问 https://github.com/astral-sh/uv,根据操作系统下载预编译二进制文件,或运行:
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后,执行 uv --version 验证是否可用。若提示 command not found,请将 ~/.cargo/bin(macOS/Linux)或 %USERPROFILE%\.cargo\bin(Windows)加入系统 PATH。
直接运行单个本地脚本
在终端中进入脚本所在目录,执行:
uv run script.py
立即学习“Python免费学习笔记(深入)”;
这会自动检测脚本中的 import 语句,解析依赖,构建轻量级临时环境,并运行脚本。不修改当前目录下任何文件,也不污染全局 Python 环境。
如果脚本需要额外依赖(如 requests),但未在 pyproject.toml 中声明,uv 会报错退出,并提示缺失的包名——【必须显式声明依赖才能成功运行】。
带依赖声明的本地脚本运行
方法一:使用 pyproject.toml 声明依赖
在脚本同级目录新建 pyproject.toml,写入:
[project.dependencies]
"requests" = "^2.31"
然后执行 uv run script.py,uv 就能正确解析并安装 requests 后运行脚本。
方法二:命令行内联指定依赖
uv run -p 3.11 --with requests==2.31.0 script.py
其中 -p 指定 Python 版本,--with 显式追加依赖,适合临时调试。
注意:--with 添加的包仅对本次运行生效,不会写入配置文件。
运行含相对导入的模块化脚本
第一步:确保项目结构符合 Python 模块规范,例如:
myproject/
├── pyproject.toml
├── main.py
└── utils/
└── helper.py
第二步:在 myproject 目录下执行:
uv run python -m main
第三步:若 main.py 中有 from utils.helper import xxx,需保证 pyproject.toml 中有 [project] 名称字段或使用 --module 模式;否则 uv 会因无法识别包根目录而报 ImportError。
这一步不能省略 cd 进入项目根目录——【uv 默认以当前工作目录为项目根,不支持跨目录解析 relative import】。



















