python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python  .venv 与 uv

Python 虚拟环境.venv 与 uv 对比及使用

作者:讓丄帝愛伱

本文对比了Python虚拟环境的两种创建方式:传统python -m venv .venv和使用uv venv工具,具有一定的参考架子,感兴趣的可以了解一下

结论先行:两者本质上是一模一样的 —— 都是 Python 标准虚拟环境,.venv 只是约定俗成的目录名,uv 创建的虚拟环境默认也叫 .venv。区别只在于"谁负责创建和管理它":一个是 Python 自带的 venv 模块,一个是 uv 工具。激活、使用、退出的命令完全通用。

一、两者关系对比

对比项python -m venv .venv(传统方式)uv venv(uv 方式)
本质Python 标准库 venv 创建的虚拟环境同样是标准虚拟环境,uv 只是创建/管理工具
默认目录.venv(名字可自定)默认也是 .venv,行为对齐
目录结构Scripts/(Windows)或 bin/(Linux/Mac)完全一样
激活命令相同相同(激活的是同一个东西)
安装包pip install xxxuv pip install xxx 或 uv add xxx
创建速度慢(秒级~十秒级)极快(毫秒级)
自动同步 pyproject不支持,需手动uv sync 一键按 pyproject.toml 装齐依赖
免激活使用需先激活或用完整路径uv run 自动识别并使用 .venv,可不激活
Python 版本管理只用当前系统 Python可自动下载/指定任意 Python 版本

一句话: .venv 是结果(虚拟环境目录),venv/uv 是两种产生它的方式;两者激活、退出命令通用,uv 在"管理依赖"上更省事。

二、如何激活(Windows 环境)

终端类型激活命令
Git Bashsource .venv/Scripts/activate
CMD.venv\Scripts\activate.bat
PowerShell.venv\Scripts\Activate.ps1(若被拦截:Set-ExecutionPolicy -Scope Process Bypass 后重试)
Linux / macOS(参考)source .venv/bin/activate

激活成功的标志:命令行提示符前面会出现 (.venv),如 (.venv) user@pc:~/project$。

三、激活后的使用

操作传统方式(pip)uv 方式免激活方式(两者通用)
装包pip install requestsuv pip install requests / uv add requests不适用(必须在 venv 内)
按清单装依赖pip install -r requirements.txtuv sync(读 pyproject.toml)/ uv pip install -r requirements.txt不适用
运行 Pythonpython xxx.py同左(激活后 python 即指向 .venv).venv/Scripts/python xxx.py
运行脚本工具flask run / pytest 等同左.venv/Scripts/flask run 等
查看包列表pip listuv pip list不适用
看当前用的是哪个 Pythonwhere python(Windows)同左where python

四、如何退出

终端类型退出命令
全部终端(CMD / PowerShell / Git Bash / Linux)deactivate

退出后 (.venv) 前缀消失,python 恢复指向系统全局环境。

五、补充:uv 的独特用法(可以不激活)

操作命令说明
创建环境uv venv在当前目录生成 .venv,还可用 uv venv --python 3.12 指定版本
不激活直接跑uv run python app.pyuv 自动找到并使用 .venv,不需要手动激活
不激活直接装uv add requests自动写入 pyproject.toml 并同步 .venv
一键同步uv sync把 pyproject.toml 里的依赖全部装进 .venv

建议: 如果项目还没有引入 uv,传统 python -m venv .venv + 激活就完全够用;如果项目里已有 pyproject.toml 或想提速,直接 uv venv + uv sync,激活命令和传统方式一模一样,零切换成本。

到此这篇关于Python 虚拟环境.venv 与 uv 对比及使用的文章就介绍到这了,更多相关Python .venv 与 uv 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文