使用 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 开发提供灵活可靠的环境管理体验。

相关推荐
qq_423233906 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
林深现海6 小时前
【刘二大人】PyTorch深度学习实践笔记 —— 第四集:反向传播(凝练版)
pytorch·python·numpy
菩提树下的凡夫6 小时前
Python 环境管理工具
开发语言·python
索荣荣7 小时前
JavaToken实战指南:从原理到应用
开发语言·python
Albert Edison7 小时前
【Python】函数
java·linux·python·pip
2401_836563187 小时前
用Python读取和处理NASA公开API数据
jvm·数据库·python
AAD555888997 小时前
基于Faster RCNN的暴力行为检测模型优化与实现_1
python
难得的我们7 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
工程师老罗7 小时前
Turtle库的用法
python
Sivan_Xin7 小时前
拒绝 If-Else 屎山:利用适配器模式(Adapter)构建第三方登录的“防腐层”实战
linux·python·适配器模式