使用 uv 工具在 Windows 系统快速下载安装与切换 Python

一、环境准备

在开始之前,请确保你拥有对 Windows 系统的管理员权限,以便安装软件并修改 PATH 环境变量。整个流程无需预装 Python,uv 会在运行时自动下载并管理所需版本#。

二、安装 uv

1. 使用官方独立安装脚本

uv 官方提供跨平台的独立安装脚本,可在 Windows PowerShell 中执行#:

powershell 复制代码
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

该命令会在用户目录下创建 uv.exe 并将其添加至 ~/.local/bin(如需,可手动将该路径加入系统 PATH)#。

2. 验证安装

安装完成后,可在任意终端运行:

bash 复制代码
uv version

若输出 uv 的版本号,则表示安装成功。

三、使用 uv 安装 Python

1. 查看可用和已安装的 Python 版本

bash 复制代码
uv python list

该命令会列出所有本地已安装及可供下载的 Python 版本#。

如需过滤特定版本,可在命令后添加版本号:

bash 复制代码
uv python list 3.12

仅显示与 3.12 系列相关的版本。

2. 安装特定 Python 版本

bash 复制代码
uv python install 3.12

该命令会在默认的管理目录(%USERPROFILE%\.local\share\uv\python)下载并安装 CPython 3.12.x 托管版本#。

若需同时安装多个版本,可依次指定:

bash 复制代码
uv python install 3.10 3.11 3.12

3. 重装和卸载

  • 重装所有已管理版本

    bash 复制代码
    uv python install --reinstall
  • 卸载指定版本 (示例):

    bash 复制代码
    uv python uninstall 3.11

四、项目级别的 Python 版本管理

1. 永久锁定(pin)

进入项目根目录,运行:

bash 复制代码
uv python pin 3.12

该命令会在当前目录生成或更新 .python-version,后续所有 uv 命令(如 uv venvuv runuv pip)均优先使用该版本#。

2. 设置为windows python版本

下面命令会创建一个用户环境变量PYTHON-BIN, 并且指向uv python find结果目录部分

cmd 复制代码
for /f "tokens=*" %i in ('uv python find') do setx PYTHON-BIN "%~dpi\"

然后请手动在用户环境变量python中增加%PYTHON-BIN%, 务必增加到最上面, 如图

重启之后, 命令行就可以正确的使用python了

后续如果要切换系统默认python版本, 比如3.10版本

cmd 复制代码
uv python pin 3.10
for /f "tokens=*" %i in ('uv python find') do setx PYTHON-BIN "%~dpi\"

如此就实现, 使用uv来切换windows的python版本

3 临时指定

如需对单次命令使用不同版本,无需修改配置,可这样执行:

bash 复制代码
uv run --python 3.10 python -c "import sys; print(sys.version)"

该命令仅在本次执行时调用 Python 3.10,不会改变项目设置#。

4. 验证当前生效版本

bash 复制代码
uv python find

输出当前解析后将被调用的 Python 可执行文件路径;加上 --system 可仅在系统路径中查找而忽略虚拟环境#。

五、常见问题

  • 权限错误 :如出现"Permission Denied",请以管理员身份重启 PowerShell 或调整 ~/.local 目录权限。
  • 环境变量未生效 :确保 ~/.local/bin 已加入系统 PATH,并重启终端。
  • 下载失败 :检查网络并确保能访问 https://astral.sh

六、总结

通过上述步骤,您可以在全新 Windows 系统中快速部署 uv,并使用 uv 高效地安装、切换和管理多个 Python 版本,同时支持项目级别的版本锁定与虚拟环境创建,为 Python 开发提供灵活可靠的环境管理体验。

相关推荐
weixin199701080161 天前
《二手ERP对接闲鱼API:聚石塔强制入塔后的架构重构实录》(附Python源码)
python
小白快快跑哦1 天前
python-字符串全解(六):正则表达式-转义与非转义
python·正则表达式·转义与非转义
IvanCodes1 天前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
Patrick在香港1 天前
Claude 工具调用返回空:8 次失败里只有 1 次状态码不对,其余全带 200
爬虫·python·api·claude·香港
Web3&Basketball1 天前
CRM Agent 后训练实战:3 倍更少错误
python·架构·大模型·agent·推理
AIFQuant1 天前
ETF行情API接入踩坑记:从报错到跑通的七个问题
python·金融·区块链·etf·基金
GPU实战笔记1 天前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
狗狗狗狗狗乐啊1 天前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
白猫不黑1 天前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
kuuailetianzi1 天前
Python初识:定位、优势与发展历程
python