核心问题
在 Windows 上安装 Python,现在官网默认提供的是名为'Python Install Manager'的安装程序(.msix),而非传统的 exe 安装包。官方表示这将成为主流方案,但实际使用中常遇到两个痛点:一是 pip 命令不可用,因为 Scripts 目录未加入环境变量;二是多版本切换麻烦,默认总是调用最新版。此外,命令行中 python 和 py 命令的区别也常让人困惑。
基础概念:python 与 py
python 是直接调用 python.exe,依赖环境变量 PATH,谁在前面启动谁,容易冲突。而 py 是 Windows 独有的 Python 启动器,它扫描注册表,不依赖 PATH。
py:自动启动最新版。py -3.8:强制启动 3.8 版本。
结论:在 Windows 命令行里,建议优先使用 py 来替代 python。
下面这些 py 命令值得重点关注:
# 列举当前安装了哪些版本的 Python,标记 * 符号的是当前正在使用的版本
py --list
# 使用 3.13 版本的 Python 运行指定脚本
py -3.13 xxx.py
py 命令严格区分版本,目前还没有动态切换全局版本的命令,官方意图是让你时刻明确命令与版本的对应关系。
当你通过 Python Install Manager 安装时,默认会把 Python 安装到用户 AppData 目录下,并自动将 bin 文件夹添加到系统环境变量中,这样能减少很多配置麻烦。
如何运行 pip 安装依赖?
假设需要安装 uv,直接使用 pip install uv 可能会报错。正确做法是使用 py -m pip:
py -m pip install uv
-m 参数告诉 Python 去已安装的库中找到 pip 模块并运行它。安装后你会发现直接输入 uv 依然提示找不到路径,这是因为 uv 被安装到了当前 Python 环境的 Scripts 目录下,该目录并未加入系统 Path。
如果你指定了版本,比如 py -3.13 -m pip install uv,uv 会被安装到该特定版本的 Scripts 目录中。此时若需使用,要么添加环境变量(不推荐),要么采用更优方案。
安装 uv 的最佳方案
与其折腾环境变量,不如直接安装 uv 工具本身。推荐使用以下命令进行安装,它能自动处理环境变量:
# Windows PowerShell
-ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
这样一行命令即可畅快使用 uv 做依赖管理和虚拟环境创建。
总结:其实你可能不需要手动安装 Python
对于 Windows 电脑,或许你只需要安装 uv 就够了。只安装 uv 的好处很明显:
- 系统零污染:控制面板卸载列表干净,没有一堆 "Python 3.x" 之类的残留。
- 版本自由:想用 Python 3.8?执行
uv run --python 3.8。想用 3.13?执行uv run --python 3.13。uv 会帮你管理好所有版本,用完甚至可以一键清理。
唯一的改变是,你在 PowerShell 上无法直接使用 python main.py,需要改为 uv run main.py。但这换来的是更清爽的环境和更灵活的管理。

