[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

Python开发从入门到精通:异步编程与协程

Python开发从入门到精通:异步编程与协程

《Python开发从入门到精通》设计指南第二十一篇:异步编程与协程 一、学习目标与重点 💡 学习目标:掌握Python异步编程的基本概念和方法,包括协程、任务调度、事件循环等;学习asyncio、aiohttp等核心库的使用;通过实战案例开发异步应用程序。 ⚠️ 学习重点:协程的定义与使用、任务调度、事件循环、asyncio库、aiohttp库、异步编程实战。 21.1 异步编程概述 21.1.1 什么是异步编程 异步编程是一种并发编程方式,通过非阻塞的操作提高程序的执行效率。在异步编程中,程序可以在等待I/O操作完成时继续执行其他任务,而不需要阻塞等待。 21.1.2 异步编程的优势 * 提高执行效率:在等待I/O操作完成时,程序可以继续执行其他任务。 * 降低资源消耗:减少了线程切换的开销。 * 简化代码结构:通过协程和任务调度,代码结构更加简洁。 21.1.3 异步编程的应用场景

By Ne0inhk
【Python】正则表达式的艺术:轻松驾驭 Python 的re库

【Python】正则表达式的艺术:轻松驾驭 Python 的re库

🏠大家好,我是Yui_,目标成为全栈工程师~💬 🍑如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🚀如有不懂,可以随时向我提问,我会全力讲解~ 🔥如果感觉博主的文章还不错的话,希望大家关注、点赞、收藏三连支持一下博主哦~! 🔥你们的支持是我创作的动力! 🧸我相信现在的努力的艰辛,都是为以后的美好最好的见证! 🧸人的心态决定姿态! 💬欢迎讨论:如有疑问或见解,欢迎在评论区留言互动。 👍点赞、收藏与分享:如觉得这篇文章对您有帮助,请点赞、收藏并分享! 🚀分享给更多人:欢迎分享给更多对编程感兴趣的朋友,一起学习! 文章目录 * 1.案例引入 * 2.正则表达式 * 2.1 核心概念 * 3.正则表达式的语法 * 3.1 正则:`.` * 3.2 正则: `\d` * 3.3 正则:`\D`

By Ne0inhk
Python中的鸭子类型:理解动态类型的力量

Python中的鸭子类型:理解动态类型的力量

Python中的鸭子类型:理解动态类型的力量 * 什么是鸭子类型? * 鸭子类型的特点 * 1. 灵活性 * 2. 动态性 * 3. 简洁性 * 鸭子类型的实现 * 鸭子类型的优缺点 * 优点 * 缺点 * 鸭子类型的实际应用 * 1. 插件系统 * 2. 框架开发 * 3. 数据处理 * 总结 Python以其动态类型系统而闻名,而鸭子类型(Duck Typing)是这一系统的核心特性之一。鸭子类型是一种编程范式,它强调“行为”而非“类型”。换句话说,如果一个对象“像鸭子一样行走、游泳和嘎嘎叫”,那么它就可以被视为鸭子,而无需显式地检查其类型。 在这篇博客中,我们将深入探讨鸭子类型的定义、特点、优缺点以及实际应用,帮助你更好地理解和利用这一强大的特性。 什么是鸭子类型? 鸭子类型是一种动态类型机制,其核心思想是:对象的行为决定了它的类型,而不是其声明的类型。在Python中,鸭子类型允许我们在运行时动态地检查对象是否具有所需的方法或属性,

By Ne0inhk
【算法】最长公共子序列(C/C++)

【算法】最长公共子序列(C/C++)

最长公共子序列(LCS,Longest Common Subsequence)问题简称(LCS),是动态规划里面里面的基础算法。它的所解决的问题是,在两个序列中找到一个序列,使得它既是第一个序列的子序列,也是第二个序列的子序列,并且该序列长度最长。由下图中两个序列,我们可以看出来最长公共子序列为[s c r g]。 我们来举个“栗子”,比如序列A为“abcdef”,序列B为“bcef”,那么它的最长公共子序列为序列B,即:“bcef”,注意最长公共子序列不用保证每一个字符必须连续。那么我们一般的暴力做法是什么呢?首先我们先要确定一个参照序列,这里以A为例吧,首先我们需要确定公共子序列的头部,由于选择了A序列为参照序列,那么遍历A序列的每一个字符,把这个遍历的字符与B序列的每一个字符相比较,若相等,A序列遍历到下一个字符,在B序列的基础上再与B序列的下一个字符为起点继续进行比较,直到序列结束,然后再确定A序列的下一个字符为头部,以此类推,从这里面找一个最大的数,即是最长公共子序列的长度。像这样做法,我们的时间复杂度也要O(n^2*m)(n为序列A的长度,

By Ne0inhk