Skip to content

Python 未找到?修复 Windows 中的 Microsoft Store 重定向问题

当你在 Windows 命令行中尝试使用 Python 时,可能会遇到这样的错误信息:"Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases"。这个问题的根本原因是 Windows 系统中的应用执行别名设置和 Python 环境变量配置问题。

问题原因分析

这个问题通常出现在以下情况:

  1. Python 未正确安装或未添加到系统 PATH 环境变量
  2. Windows 的应用执行别名设置优先指向 Microsoft Store
  3. Python 安装过程中未选择"添加到 PATH"选项

解决方案

方法一:禁用应用执行别名(最快解决方案)

推荐首先尝试

这是最简单直接的解决方案,适用于大多数情况

  1. 打开 Windows 搜索框,输入"管理应用执行别名"(Manage App Execution Aliases)
  2. 在打开的设置窗口中,找到所有与 Python 相关的条目
  3. 将它们全部关闭(切换为"关"状态)

管理应用执行别名设置界面

方法二:正确配置环境变量

如果禁用应用别名后问题仍然存在,需要检查 Python 环境变量配置:

  1. 找到 Python 安装路径(通常为):

    C:\Users\[用户名]\AppData\Local\Programs\Python\Python[版本号]
    C:\Users\[用户名]\AppData\Local\Programs\Python\Python[版本号]\Scripts
  2. 添加到系统环境变量:

    • 右键点击"此电脑" → "属性" → "高级系统设置"
    • 点击"环境变量"按钮
    • 在"系统变量"部分找到并选择"Path",点击"编辑"
    • 点击"新建",添加上述两个路径
    • 确认所有更改

环境变量设置界面

重要提示

确保将路径添加到"系统变量"而非"用户变量",某些情况下用户变量可能无法正常工作

方法三:重新安装 Python 并正确配置

如果上述方法无效,建议重新安装 Python:

  1. 卸载当前 Python 版本
  2. Python 官网 下载最新版本
  3. 安装时务必勾选"Add Python to PATH"选项
  4. 选择自定义安装并确保安装到正确目录(如 C:\Program Files)

Python 安装时添加 PATH 选项

方法四:使用替代命令

在某些情况下,可以使用 py 命令代替 python

bash
py -m pip install --upgrade pip setuptools virtualenv

或者指定 Python 版本:

bash
py -3 your_script.py

验证解决方案

完成以上任一解决方案后,验证是否修复成功:

bash
python --version
# 或
py --version

应该显示已安装的 Python 版本号,而不是错误消息。

针对特定开发环境的额外提示

Visual Studio Code 用户

如果你使用 VSCode,确保底部状态栏显示正确的 Python 解释器版本。点击版本号可以切换解释器。

Anaconda 用户

Anaconda 用户可能需要使用 Anaconda Prompt 而非普通命令行,或者在环境变量中添加 Anaconda 的 Python 路径。

常见问题解答

Q: 我已经添加了环境变量,为什么还是不起作用? A: 尝试重启计算机,环境变量更改有时需要重启才能生效。

Q: 我应该使用系统变量还是用户变量? A: 建议使用系统变量,因为它对所有用户生效,更可靠。

Q: 为什么 Windows 要引导我到 Microsoft Store? A: 这是 Windows 10/11 的一项功能,旨在简化应用安装,但会干扰本地安装的 Python。

总结

"Python was not found"错误通常可以通过禁用应用执行别名或正确配置环境变量来解决。建议按照上述方法的顺序尝试,大多数情况下方法一就能解决问题。确保在安装 Python 时始终勾选"添加到 PATH"选项,可以避免许多类似问题。

专业建议

对于开发工作,建议使用 Python 官方安装包而非 Microsoft Store 版本,以便获得更完整的控制权和灵活性。