一、核心问题
目前在 Windows 机器上安装 Python,从官网下载的安装文件不再是具体的某一个版本的 Python,而是一个名为'python-manager-25.0.msix'的文件,被称为'Python Install Manager'。这种方式将成为 Windows 系统安装 Python 的主流方式。官网原文如下:
The Python install manager for Windows is our tool for installing and managing runtimes. The traditional executable installer will stop being released with Python 3.16 As well as the files below, the Python install manager can be installed using the Microsoft Store app. For most users, this is the recommended approach.
从上面这段描述来看,通过 Python Install Manager 将成为日后的主流方案,但是当你通过这种方式来安装完 Python 之后,你大概率会遇到两个问题:
- pip 命令无法使用:虽然 python -V 正常,但输入 pip 报错。原因:Python 安装目录下的 Scripts 文件夹没有添加到系统环境变量 Path 中。
- 多版本切换困难:当你使用 python -V 命令检查系统当前在用的 Python 版本时默认会是当前最新的版本,怎么才能动态切换系统的 Python 版本,变成一个需要亟待解决的问题。
- py 命令与 python 命令:当你在命令行中执行 python -V 和 py -V 时你会发现两个命令竟然输出的东西一模一样,那么这个 py 命令和 python 命令的关系又是怎样的呢?
本文将主要介绍这些问题的解决方案,并对关键问题进行说明。
二、基础概念解析
1. python vs py 命令
- python (解释器):直接调用 python.exe。它依赖环境变量 PATH,谁排在前面就启动谁,不灵活,容易版本冲突。
- py (启动器):Windows 独有的 Python 启动器。它不依赖 PATH,而是扫描注册表。
- py:自动启动最新版。
- py -3.8:强制启动 3.8 版本。
结论:在 Windows 命令行里,可以用 py 全面替代 python。但是也仅限是 windows 环境。
下面几个 py 命令需要做重点关注:
# 列举当前安装了哪些版本的 python,标记 * 符号的是当前正在使用的版本
py --list
# 使用 3.12 版本的 python 运行指定脚本
py -3.13 xxx.py
可以发现 py 命令是严格区分版本的,并且截止目前 py 还没有那种可以动态切换当前正在使用的 Python 版本的命令,官方的想法应该是想让我们时刻都知道命令和版本之间的对应关系。
此外,当你使用 Python Install Manager 安装 Python 时,默认会把 Python 安装到 C:\Users\你的用户名\AppData\Local\Python 下面,还会把 bin 文件夹自动添加到系统环境变量(当前用户的 Path 环境变量下面)中。
2. 怎么运行 pip 来安装依赖呢?
假定我现在需要使用 pip 来安装 uv,现在则需要使用下面的命令:
py -m pip install uv
这比我们之前直接安装指定版本的 Python 的时候需要额外增加一个前缀 py -m。这个 -m 参数的含义是告诉 Python 不要运行文件,而是去已安装的库里找叫 pip 的模块并运行它。
通过上面的命令安装 uv 之后你会发现两个问题:
- 直接在终端使用 uv 直接报错,提示找不到可运行文件。
其实这个很好理解,使用上面的文件会直接把 uv 放到当前正在运行的 Python 安装目录的 Script 目录下,这个目录还不在系统 Path 环境变量下,自然提示找不到。
这里额外说明下如果你使用下面的命令安装,则会把 uv 安装到指定版本的 Python 安装目录的 Script 目录下:
py -3.13 -m pip install uv
回到开始的问题,这时候运行 uv 提示找不到路径怎么办?
第一种方式自然是把这个路径给添加到环境变量里面,这种方案可行,但是并不推荐,下面介绍最适合 Windows 系统安装 uv 命令的方案。

