FEATURED · 精选文章

UV常用命令总结

发布时间 / 2026/9/1 8:56:18
来源 / 创域科博编辑部
栏目 / 资讯中心
UV常用命令总结 uv是一个用Rust编写的极速Python包和项目管理工具中文文档可以在这里uv中文文档进行查看本文会总结一些常用的命令方便查询安装UV使用以下命令安装uvcurl-LsSfhttps://astral.sh/uv/install.sh|sh安装完成后进行验证uv--versionUV的项目和虚拟环境uv中有项目project和虚拟环境venv两个概念两者完全独立、可自由组合但又默认搭档第一次接触可能真的分不清楚项目指的是只要目录下出现pyproject.tomluv就把它当项目项目里只声明要哪些依赖、哪个Python版本不强制自带venv依赖版本被uv.lock锁死确保任何人、任何机器都能复现同一组包虚拟环境和Conda差不多是一个bin/pythonsite-packages的目录完全可脱离项目存在是一个新的、隔离的python环境简单来说项目只管“我要什么”而venv只管“包在哪里”项目初始化项目初始化一个名称为example的项目如果不指定项目的python版本会默认用当前shell中能找到的最新版python如果项目有python版本要求需要显式指定# 在当前目录下新建一个名称为example的文件夹作为项目文件夹并在文件夹中生成项目相关基础文件uv init example# 已经建好一个目录进入目录后初始化项目将项目命名为exampleuv init--nameexample# 已经建好一个目录进入目录后初始化项目项目名称自动命名为当前所在文件夹的名字uv init# 指定python版本为3.10uv init example--python3.10# 指定python版本的范围uv init example--python3.10,3.13uv init不会创建虚拟环境因为目前依赖列表是空的所以也没有uv.lock文件一键执行一键执行指令是在刚刚确保好的那个虚拟环境里把用户给的命令原样exec出去会确保当前项目有一个最新、且与uv.lock完全对齐的虚拟环境然后在该环境里运行给定命令首先它会找解释器读取pyproject.toml里的requires-python范围如果没有指定python版本按照项目要求选一个用如果指定了python版本将指定的版本与项目要求对比符合要求就执行不符合就终止运行uv run--python3.10script.py其次它会找虚拟环境如果.venv已经存在且解释器版本匹配直接用如果不存在会自动创建虚拟环境最后它会同步依赖如果uv.lock不存在按照pyproject.toml生成lock如果lock存在但和toml不一致重新解析并写回lock如果lock已经最新按照lock里面的内容将venv里面的包全部对齐完成环境同步做完上述步骤后运行run的内容会自动激活虚拟环境但是它是一次性、无提示符的临时激活只会在它运行的这条命令进程里生效不会打印最前面的提示符命令一结束环境变量就恢复原样又变回了系统环境锁定与同步在uv中锁定和同步是自动进行的例如调用uv run在执行命令之前就会对项目进行锁定和同步虽然锁文件会自动创建但也可以显式创建或更新锁文件uv lock虽然环境会自动同步但也可以显式同步这条指令就相当于uv run在真正执行用户命令之前进行的全部同步步骤的独立暴露版进行的事情和上述一样uvsync虚拟环境显式创建虚拟环境可以指定python版本如果指定的版本和pyproject.toml里的requires-python范围不匹配报错# 创建名为.venv的虚拟环境默认uv venv# 指定python版本uv venv--python3.12# 指定虚拟环境名称uv venv myenv--python3.12激活虚拟环境激活后的提示符会显示环境名如果指定了虚拟环境的名称会在当前项目下创建一个以该名称命名的文件夹比如指定了名称myenv就会创建一个myenv/文件夹即创建了这个虚拟环境激活后的命令行提示符也显示的是这个名字# 未指定虚拟环境名称的激活指令source.venv/bin/activate# 指定虚拟环境名称的激活指令sourcemy_env/bin/activate如果想要虚拟环境还放在.venv/文件夹中但命令行提示符自定义可以使用以下命令# 环境在.venv提示符为myenvuv venv--python3.10--promptmyenv# 环境在.venv提示符为当前目录的名字uv venv--python3.10--prompt.# 或者这个指令也可以提示符为当前目录的名字uv venv--python3.10.激活后可以使用如下指令进行激活状态验证# 1. 检查 Python 路径whichpython# 应该输出/path/to/your/project/.venv/bin/python# 2. 检查 pip 路径whichpip# 应该输出/path/to/your/project/.venv/bin/pip# 3. 查看已安装的包pip list# 4. 验证 Python 版本python--version# 5. 检查环境变量echo$VIRTUAL_ENV# 应该输出/path/to/your/project/.venv退出虚拟环境deactivate删除虚拟环境可以删除当前虚拟环境并重新创建适用于想更换python版本或重置环境的情况# 删除并重新创建默认的.venv环境保持当前的python版本不变即里面的包全没了uv venv--clear# 删除并重新创建指定名称的环境如my_envuv venv--clearmy_env# 删除并重新创建指定python版本的环境uv venv--clear--python你想要的新版本号如果只是想单纯的删除当前的虚拟环境直接手动删除环境文件夹即可比如.venv或者myenv复刻虚拟环境首先进入已经配置好的、需要复刻的虚拟环境运行以下指令生成requirements.txt文件记录了当前环境里的所有包和版本uv pip freezerequirements.txt将这个txt文件拷贝到新项目目录下创建新的虚拟环境并激活在这个新的虚拟环境中安装依赖uv pipinstall-rrequirements.txt使用以下命令检查是否安装成功确保依赖版本和原先的环境一致uv pip list更全面的内容可以看这个网页https://www.cnblogs.com/luckAI/p/18919512UV安装包在当前虚拟环境下安装包用以下指令查看当前pip的路径如果不是当前虚拟环境的路径说明使用的是全局的pip此时用pip install就会将包安装到全局而不是当前虚拟环境内whichpip因此如果要安装到当前虚拟环境中最好使用uv的指令可以在pip前面加上uv也可以使用uv adduv pipinstallxxx uvaddxxx安装PyTorch换成国内源具体的内容参考这个网页https://juejin.cn/post/7582469532328034340安装好后使用下面命令可以查看torch的位置位置应该在当前的虚拟环境中uv pip show torchUV运行永远显式指定要用哪个python不要让shell猜否则容易跳出虚拟环境、装包/运行结果都错如果.venv不存在它会当场建好并同步依赖如果已存在直接拿.venv/bin/python跑不会污染系统uv run python script.py强制用.venv/bin/python不检查lock是否最新秒启动uv run --no-sync python script.py把解释器写死绕过shell的PATH绝对安全.venv/bin/python script.py
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻