uv怎么安装python和创建虚拟环境
详细介绍如何使用 uv 工具安装 Python 并创建虚拟环境,涵盖 uv 的安装、Python 版本管理、虚拟环境创建与激活、依赖管理等完整操作流程。
uv 是一个用 Rust 编写的 Python 包管理与项目管理工具,速度远快于 pip 和 venv。它不仅能替代 pip 安装依赖,还能直接下载、管理多个 Python 版本,并创建虚拟环境。本文从安装 uv 开始,完整演示用它安装 Python、创建和使用虚拟环境的全过程。
安装 uv
uv 本身不依赖系统已有的 Python,安装方式因操作系统而异。
macOS / Linux——在终端执行官方安装脚本:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows——在 PowerShell 中运行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
如果你已经安装了 pip 或 pipx,也可以通过它们安装:
# 通过 pipx(推荐,隔离安装)
pipx install uv
# 通过 pip
pip install uv
安装完成后,验证是否成功:
uv --version
看到版本号(例如 uv 0.6.x)即表示安装正常。如果提示找不到命令,需要将 uv 的安装目录添加到 PATH 环境变量。脚本安装时通常会给出提示路径,macOS/Linux 默认在 ~/.local/bin,可以在 shell 配置文件(~/.bashrc、~/.zshrc 等)中加入:
export PATH="$HOME/.local/bin:$PATH"
用 uv 安装 Python
传统做法需要去 python.org 下载安装包,或者使用 pyenv 管理版本。uv 把这一步也整合了进来——uv python install 可以直接下载并安装指定版本的 Python,不需要系统预装任何 Python。
安装最新稳定版 Python:
uv python install
安装指定版本,比如 Python 3.12:
uv python install 3.12
同时安装多个版本也可以:
uv python install 3.11 3.12 3.13
安装完成后,查看当前已安装的所有 Python 版本:
uv python list
示例输出:
cpython-3.13.1-macos-aarch64 /Users/demo/.local/share/uv/python/cpython-3.13.1-macos-aarch64/bin/python3
cpython-3.12.8-macos-aarch64 /Users/demo/.local/share/uv/python/cpython-3.12.8-macos-aarch64/bin/python3
cpython-3.11.11-macos-aarch64 /Users/demo/.local/share/uv/python/cpython-3.11.11-macos-aarch64/bin/python3
图1:使用 uv 安装 Python 的完整步骤
用 uv 创建虚拟环境
虚拟环境让每个项目拥有独立的依赖,避免不同项目之间的包版本冲突。uv 创建虚拟环境的命令是 uv venv,用法和 python -m venv 相似,但速度更快。
进入项目目录后,创建一个名为 .venv 的虚拟环境:
cd my-project
uv venv
默认会在当前目录下生成 .venv 文件夹,使用 uv 已安装的最新 Python 版本。如果要指定 Python 版本(比如用 3.11),加上 --python 参数:
uv venv --python 3.11
如果你还没安装 3.11,uv 会自动下载安装再创建环境,不需要单独执行 uv python install。
也可以指定虚拟环境的目录名:
uv venv myenv --python 3.12
这会创建一个名为 myenv 的目录作为虚拟环境。
激活与使用虚拟环境
创建完虚拟环境后需要激活它,激活方式取决于操作系统和 shell:
macOS / Linux(bash / zsh):
source .venv/bin/activate
Windows(PowerShell):
.venv\Scripts\Activate.ps1
Windows(CMD):
.venv\Scripts\activate.bat
激活后,终端提示符前面会出现 (.venv) 字样,表示当前处于虚拟环境中。此时执行 python 和 pip 都指向虚拟环境内部的版本。
退出虚拟环境执行:
deactivate
图2:虚拟环境从创建到退出的完整流程
在虚拟环境中安装依赖
激活虚拟环境后,可以用 uv pip install 安装包,语法和 pip 完全一样,但下载和安装速度快很多:
uv pip install requests flask pandas
从 requirements.txt 安装:
uv pip install -r requirements.txt
uv 还有另一种方式——不激活虚拟环境,直接通过 uv add 管理依赖。这需要先用 uv init 初始化项目:
uv init my-project
cd my-project
uv add requests
uv init 会生成 pyproject.toml 文件并自动创建虚拟环境。uv add 把依赖写入 pyproject.toml,同时安装到虚拟环境,并生成 uv.lock 锁文件。这种方式更适合正式项目,因为依赖版本全部记录在案,别人拿到代码后一个 uv sync 就能还原完整环境。
图3:uv pip install 与 uv add 两种依赖管理方式的区别
用 uv run 直接运行脚本
如果只是运行一个 Python 脚本,甚至不需要手动创建虚拟环境。uv run 可以自动处理环境问题:
uv run script.py
当目录中存在 pyproject.toml 时,uv run 会自动使用项目的虚拟环境;如果不存在,它会创建一个临时环境来执行。对于需要特定依赖的独立脚本,可以用 --with 参数临时引入:
uv run --with requests --with beautifulsoup4 scraper.py
这在运行一次性脚本时特别方便,不用为了跑一个文件专门建环境装包。
固定项目 Python 版本
团队项目往往要统一 Python 版本。uv 提供了 uv python pin 命令,在项目根目录下生成 .python-version 文件,记录项目要求的 Python 版本:
uv python pin 3.12
这样其他成员克隆代码后,执行 uv venv 或 uv sync 时会自动使用 3.12。如果本地没有这个版本,uv 会自动下载。
常见问题
uv 安装的 Python 和系统 Python 会冲突吗?
不会。uv 把 Python 安装在自己的数据目录中(如 ~/.local/share/uv/python/),不修改系统 Python,也不影响通过 Homebrew 或系统包管理器安装的版本。虚拟环境里使用哪个 Python 完全由创建时的 --python 参数决定。
已有的 requirements.txt 项目能直接用 uv 吗?
可以。先创建虚拟环境再安装即可:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
也可以迁移到 uv 的项目管理模式:执行 uv init,然后将 requirements.txt 中的依赖逐个 uv add,或者直接编辑 pyproject.toml 的 [project.dependencies] 部分。
删除虚拟环境怎么操作?
直接删除 .venv 目录即可,虚拟环境本质上就是一个文件夹:
rm -rf .venv
重建环境只需重新执行 uv venv。
图4:uv 常用命令及其作用总结
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













