[Python] Windows中CMD输入python总是打开商店?教你彻底解决这个“陷阱”

[Python] Windows中CMD输入python总是打开商店?教你彻底解决这个“陷阱”

在 Windows 10 和 Windows 11 系统中,很多新手 Python 学习者可能都遇到过这样一个奇怪的问题:在命令提示符(CMD)中输入 python 命令时,不是打开 Python 解释器,而是直接跳转到微软商店。这是怎么回事?难道我操作错了?

别慌,这其实是 Windows 系统自身的“坑”,而不是你的错。本文将带你一步一步关闭这个陷阱式“别名”机制,并且教你正确安装可用的 Python 环境,让你轻松开启 Python 编程之旅!


一、为什么输入 python 会打开 Microsoft Store?

这其实是 Windows 系统自带的一种“别名映射”机制。当你在命令行中输入 pythonpython3 命令时,如果系统没有在 PATH 环境变量中找到真正的 Python 可执行文件,就会默认跳转到商店引导你安装,这一行为来源于所谓的“App Execution Aliases”(应用执行别名)。

这种机制初衷是好的——帮用户快速从商店获取 Python。但现实是,商店版本并不适合开发者使用,路径混乱、不易管理、功能有限,甚至可能出现多个版本混用、环境变量错乱等问题。

因此,我们的第一步是:关闭这个自动跳商店的设置


二、关闭“跳转商店”的 App 别名设置

操作步骤如下:

  1. 在列表中找到以下两个条目:
    • App Installer - python.exe
    • App Installer - python3.exe
  2. 将它们的开关都关闭(关掉切换按钮)

打开 设置 → 应用 → 高级应用设置 → 应用执行别名或在某些版本中路径为:

设置 → 应用 → 应用和功能 → 右上角“更多设置” → 应用执行别名

完成以上设置后:

  • 再次在 cmd 中输入 python 时,就不会再跳商店了。
  • 若尚未安装 Python,则会提示 'python' 不是内部或外部命令
  • 若已经安装了真实的 Python,则将正常运行。

三、推荐安装方式:真正的 Python 该怎么装?

方法 A:从官方 python.org 安装(推荐开发者使用)

  1. 访问官网:https://www.python.org/downloads/windows/
  2. 下载适合你系统的安装包(通常选择 “Windows installer (64-bit)” 的版本,例如 Python 3.12)。
  3. 然后点击 “Install Now” 完成安装。

安装时务必勾选底部选项:

✅ Add python.exe to PATH 

安装完成后,在 cmd 终端中输入:

python --version 

若成功输出版本号:

Python 3.12.1 

说明安装成功!


方法 B:使用 winget 命令安装(适用于 Win11 或新版 Win10)

如果你是 Win11 用户,或开启了 Windows 包管理器(Winget),可以使用以下方法快速安装:

  1. 打开“管理员权限”的 PowerShell(或 Windows Terminal)。

安装完成后重启终端,输入:

python --version 

执行以下命令:

winget install Python.Python.3.12 

若能正确显示版本号,则说明安装成功。


四、检查系统中真正的 Python 路径

装完 Python 后,为了确保你调用的是“正确版本”,可以使用以下命令:

where python 

正常情况下你会看到类似:

C:\Users\你的用户名\AppData\Local\Programs\Python\Python312\python.exe 

如果输出结果中含有 AppInstallerWindowsApps 等字样,那说明系统中仍可能存在别名干扰,此时建议:

  • 手动清理冗余路径;
  • 或者检查环境变量中是否有旧的 Python 安装路径未移除。

五、临时方案:尝试使用 py 命令

如果你之前已经正确安装过 Python,但 python 命令不起作用,还可以尝试:

py --version 

py 是 Windows 自带的 Python 启动器,有时候比 python 命令更可靠。你也可以通过它直接运行代码,比如:

py hello.py 

不过从长远看,还是建议把前面的“别名问题”彻底解决,让 python 命令正常工作。


六、结语:避免入坑,从基础配置做起

Windows 系统自动“跳转商店”的机制确实让很多 Python 新手误入歧途。我们总结一下最重要的几点:

  • ✅ 关闭 App Installer 的 python.exe 别名,避免被重定向到商店。
  • ✅ 推荐使用 python.org 官方安装包,勾选“添加到 PATH”。
  • ✅ 安装后用 where python 检查系统路径是否正确。
  • py 命令可用于临时替代。

只要配置正确,使用 CMD 或 PowerShell 输入 python 就能顺利运行解释器,开启高效的 Python 开发之路!


如果你正在学习 Python,推荐阅读《Think Python》(《Python沉思录》)这本经典入门书籍,它不只是教语法,更注重“像计算机科学家一样思考”。想学习得深入、系统、扎实,可以搭配这本书边学边练。


有任何配置上的困扰、多个 Python 共存的混乱情况,也欢迎留言交流!我们将一起解决你的 Python 环境问题 💪

Read more

Pinocchio 3.5.0版本:C++可视化引擎与模仿关节技术带来机器人动力学计算革命

Pinocchio 3.5.0版本:C++可视化引擎与模仿关节技术带来机器人动力学计算革命 【免费下载链接】pinocchioA fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives 项目地址: https://gitcode.com/gh_mirrors/pi/pinocchio 项目概述 Pinocchio作为机器人动力学领域的标杆性C++库,以其毫秒级计算效率和模块化架构著称。该库专注于提供刚体动力学算法及其解析导数的快速实现,广泛应用于工业机器人仿真、人形机器人控制、医疗康复设备开发等前沿领域。最新发布的3.5.0版本通过五大技术革新,将机器人建模与计算能力提升至全新高度,特别在复杂机构仿真和实时控制场景中展现出突破性价值。 图:Pinocchio在不同机器人模型上的动力学计算性能对比,展示了其在逆动力学、质量矩阵和正向动力学任务中的高效表现 核心升级亮点 🔧 C++原生可视化引擎:告别Python依赖的开发新范

By Ne0inhk
【C++动态规划】1547. 切棍子的最小成本|2116

【C++动态规划】1547. 切棍子的最小成本|2116

本文涉及知识点 C++动态规划 LeetCode1547. 切棍子的最小成本 有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。例如,长度为 6 的棍子可以标记如下: 给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置。 你可以按顺序完成切割,也可以根据需要更改切割的顺序。 每次切割的成本都是当前要切割的棍子的长度,切棍子的总成本是历次切割成本的总和。对棍子进行切割将会把一根木棍分成两根较小的木棍(这两根木棍的长度和就是切割前木棍的长度)。请参阅第一个示例以获得更直观的解释。 返回切棍子的 最小总成本 。 示例 1: 输入:n = 7, cuts = [1,3,4,5] 输出:16 解释:按 [1, 3, 4, 5]

By Ne0inhk
javaSE————文件IO(2)、

javaSE————文件IO(2)、

文件内容的读写——数据流 我们对于文件操作使用流对象Stream来操作,什么是流对象呢,水流是什么样的,想象一下,水流的流量是多种的,可以流100ml,也可以流1ml,流对象就和水流很像,我们可以一次读取100个字节,或者一次读取1个字节; 1,字节流 1)inputStream 先来使用inputStream,这个是字节流的输入,inputStream是抽象类,和下面的outputStream是一样的,我们需要FileInputStream来实例化对象,FileInputStream的构造方法: 签名说明FileInputStream(File file1)可以使用file构造文件输入流FileInputStream(String str)也可以使用文件路径构造输入流 那么inputStream有啥方法呢: 返回类型签名说明int read()一次就读一个字节,读完了返回-1intread(byte[] byte)一次读字节数组这么长的数据,返回-1就说明读完了intread(byte[] byte,int start,int len)一次读取start

By Ne0inhk
Java 常用类

Java 常用类

第十三章:常用类 八大wrapper(包装类) 八种基本数据类型相应的引用类型——包装类 boolean--Boolean char--Character byte--Byte short--Short int--Integer long--Long float--Float double--Double Number类的wrapper Boolean类 Character类 自动装箱和拆箱⭐ 编译器底层优化:实现自动装箱和拆箱 packagecom.lcz.commenclass.wrapper;/** * @author lcz * @version 1.0 */publicclassWrapper{publicstaticvoidmain(String[] args){//jdk 5 前的 手动装箱和手动拆箱//装箱:基本类型-->包装类型//拆箱:包装类型-->基本类型//1.1手动装箱int i =1;//第一种方式Integer

By Ne0inhk