当我输入“python”时,CMD 打开 Windows 应用商店
- 2024-12-24 08:55:00
- admin 原创
- 104
问题描述:
今天,当我尝试在 Sublime Text 3 上运行简单代码时,出现以下消息:
未找到 Python,但可以从 Microsoft Store 安装:https://go.microsoft.com/fwlink?linkID =2082640
当我在 CMD 中输入 Python 时,它会打开 Windows 应用商店供我下载 Python 3.7。这个问题今天无缘无故地开始了。我没有更改或下载任何有关 Python 的内容,并且已经尝试重新安装 Python,并且 Path 环境变量是正确的。
解决方案 1:
使用 Windows 搜索栏找到“管理应用程序执行别名”。应该有两个 Python 别名。取消选择它们,这将允许常见的 Python 别名“python”和“python3”。参见下图。
我认为我们在安装 Python 时遇到了这个问题,因为在新的 Windows 安装中,别名处于 ON 位置,如下图所示。打开后,Windows 会将一个名为python.exe和python3.exe的空文件或假文件放在名为 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps 的目录中。这就是别名。
然后微软将该目录放在“Path”环境变量列表的顶部。
当您在 cmd 中输入“python”时,它会从上到下搜索“Path”环境变量页面中列出的目录。因此,如果您在新安装 Windows 10 后安装了 Python,然后重定向到 Windows 应用商店,这是因为有两个 python.exe:应用程序执行别名页面中的别名,以及您安装 Python 的实际别名。但 cmd 首先找到应用程序执行,别名 python.exe,因为该目录位于路径的顶部。
我认为最简单的解决方案就是按照我之前建议的那样将python.exe和python3.exe设置为 OFF,这样就可以删除假的 EXE 文件。
我第一次遇到这个问题时,手动删除了python.exe和python3.exe文件,但当我重新启动时,文件又重新生成了。这促使我搜索“应用程序执行别名”页面并取消选中该框,通过不允许文件重新生成,这个问题就解决了。
根据Microsoft Devblog,他们表示他们创建这个系统的部分原因是针对新的 Python 用户,特别是在学校学习 Python 但在安装时遇到困难并专注于学习编码的孩子。我认为如果您从 Windows 应用商店安装 Python,Windows 可能会删除这些别名。我们注意到,如果您从其他来源手动安装,它们不会被删除。
(此外,空的/假的 python.exe 并不是真的空。屏幕截图中显示 0 KB,但在 cmd 中输入“start ms-windows-store:”会打开 Windows 应用商店,因此它可能只有一行以及一种将其定向到 Python 页面的方法。)
另一种方法是,正如 Chipjust 所建议的,你可以使用 DOSKEY 之类的工具为 Python 创建一个新别名,如本文所述:
如何在 Windows 中为命令提示符设置别名
另一种方法是删除指向别名文件 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps 的用户路径环境变量,但应用程序执行别名处理的应用程序不仅仅是 Python,从环境变量中删除路径会破坏该目录中具有执行别名的所有其他应用程序;在我的 PC 上,这些应用程序包括记事本、xbox 游戏栏、spotify、主板监控软件、画图、Android 的 Windows 子系统等等。此外,如果您仔细想想,普通 Windows 用户不熟悉编辑环境变量,而在学校和企业拥有的计算机上,编辑环境变量需要管理员访问权限。因此,从路径环境变量中删除 ...\WindowsApps 的路径并不理想。
解决方案 2:
这是一个可以发挥神奇作用的 PowerShell 脚本。
Remove-Item $env:USERPROFILEAppDataLocalMicrosoftWindowsAppspython*.exe
解决方案 3:
如果已经安装了 Python 解释器,则从设置中转到应用和功能,选择 Python,然后选择修改。
再次选择修改并选择Next
:
然后会出现这个窗口:
选择“将 Python 添加到环境变量”并单击安装按钮。然后再次转到应用程序和功能,单击修改并单击Repair
。现在转到 CMD 并输入 Python。问题解决了。
解决方案 4:
这里的主要问题是路径中的顺序是从上到下调用窗口的,并且如果该行上方没有其他,则首先调用其中python.exe
的。%USERPROFILE%AppDataLocalMicrosoftWindowsApps
`python.exe`PATH
为了确保正确python.exe
调用,请将 Python 解释器安装文件夹(包含python.exe
)添加到上面的 PATH 中%USERPROFILE%AppDataLocalMicrosoftWindowsApps
以下是一个例子:
要到达此位置,请单击“开始” → 开始输入“Env” → 选择“编辑系统环境变量” → “环境变量”按钮 → 在上面列表中选择“路径”条目 → 单击“编辑”。
Python 组件应位于顶部,如步骤 5 所示。如果不是,请按步骤 6 中的按钮将它们向上移动。
解决方案 5:
我也遇到了这个问题,Windows 无法在双击或 cmd(命令)提示符中识别 Python 或Anaconda 。
问题:无法在 Windows 中的“python”cmd 中导入库。相反,Windows“python”cmd 将用户带到他们不想去的地方。
问题原因:在 Windows“环境变量”中,Windows 在“%USERPROFILE%\AppData\Local\Microsoft\WindowsApps”目录中添加了 python.exe 和 python3.exe(我不知道这些链接到哪里)。
解决方案:我尝试删除 WindowsApp 目录中的 python*.exe 文件,但 Windows 不允许这样做,因此我在“%USERPROFILE%\AppData\Local\Microsoft\WindowsApps”目录中打开命令提示符并输入:
del python.exe
del python3.exe
然后我创建了一个环境变量,链接到已安装的 Python 解释器链接。在我的例子中,它是 C:\Anaconda3;C:\Anaconda3\Scripts,还有一些其他变量。
解决方案 6:
因为这是一个常见问题并且似乎是一个典型问题,所以我想尝试对 Python 3.7 Windows Store Fiasco (TM) 进行完整的概述。
为什么会发生这种情况?
两件事的融合:2011 年推出的适用于 Windows 的 Python 启动器(以下简称“),以及2019 年 5 月的py
Windows 10 更新,显然是为了让Windows 用户更轻松地安装 Python。
哎呀。事实证明,安装路径并不好;它绕过了“冗长的”安装向导……其中包含一些用户认为非常有用的选项。它还引起了其他问题。更不用说它的工作方式略有不标准,由于它是一个商店应用程序,因此对文件系统访问有限制,最初无法通过py
……启动。
好的,但是为什么这些因素会导致这个问题呢?
自从引入以来py
,默认情况下,Windows Python 安装程序不会将新的 Python 安装添加到 PATH。为什么?因为 的整个要点py
在于它使用自己的逻辑来查找 Python 安装,该逻辑基于某种命令行开关组合以及可能包含源文件自己的 shebang 行。现在,您的源文件可以与py
而不是任何特定的关联python.exe
,并且双击文件时可以获得类似 Linux 的行为。同时,通过py
在命令行运行,您可以轻松访问所需的任何内容,而不必考虑最近安装了哪个版本的 Python。因此,似乎没有理由将任何 Python 安装放在 PATH 上。只有当最近安装的版本不是最新版本时,才会让您感到困惑。对吗?
在更新中,Windows 10 将“python.exe”放入与 Windows Apps 相关的文件夹中,这是一个用于打开 Microsoft Store 链接的包装器应用程序。这个想法是它位于 PATH 上,但靠近末尾;因此,如果您安装了 Python,它将被使用,否则将调用包装器并提示您安装 Python - 这样您就可以实际运行.py
朋友在 Discord 上发送给您的随机、完全可信的文件。
如果你安装的 Python 位于 PATH 上,它就能完美运行。
哎呀。
(但是,您知道,该py
技术大约在 8 年前就已引入。您可能会认为微软的某个人已经意识到了这一潜在问题。也许他们可以编写一个实际的脚本来检查是否存在某些东西,而不是使用特殊的快捷方式链接C:Windowspy.exe
。)
那么我有什么选择?
python
您可以勾选在安装新 Python 版本时将其添加到 PATH 的选项,并处理命令行中表示特定版本的事实。如果您需要更改这一点,可以手动调整 PATH 变量。您可以在事后手动调整 PATH 变量。(或“修改” Python 安装来修复它。)其他几个答案中也涵盖了这一点。
除此之外,您还可以禁用包装器,如上面的答案所示。无论如何,您都应该这样做;
python
在命令行中看到失败比处理随机弹出并提示您安装某些东西要轻松得多,尤其是当您知道您已经拥有它时。如果您想让 PATH 保持为空,请考虑为您的项目使用虚拟环境。每当虚拟环境处于活动状态时,PATH 都会被临时修改,这
python
意味着该环境的 Python 安装。这确实很方便。您可能能够告诉您的 IDE 使用
py
特定的 Python 安装,这样做甚至可能会有所帮助。我不知道。我没有使用过。
解决方案 7:
作为使用 Sublime Text 进行 Python 开发的人,我知道您说的 Python 解释器路径是正确的,但是在安装 Python 解释器时请确保勾选将 Python 添加到 PATH 的选项。
我以前也遇到过同样的问题,直到我这样做了。
解决方案 8:
您可以通过执行以下操作将 Python 手动添加到 Windows 路径:
启动运行框并输入sysdm.cpl
转到“高级”选项卡并单击“环境变量”按钮
现在你需要找到相关的 Python 路径
Python 应用程序路径如下所示:
Python 脚本路径如下所示:
选择 Path 变量,按编辑并添加两个路径(Python 应用程序和 Python 脚本)
如果没有显示,请按“新建”而不是“编辑”,然后填写“新用户变量”框
我的变量值如下所示:
C:\用户\Ron\应用程序数据\本地\程序\Python\Python37-32;C:\用户\Ron\应用程序数据\本地\程序\Python\Python37-32\脚本
就这样!您刚刚将 Python 添加到了 Windows 路径。
资料来源:Data To Fish
解决方案 9:
我整理了一个 powershell 代码片段,它重新排列了 WindowsApps 和 Python 文件夹,以便 Python 位于第一位。以管理员身份运行此代码:
$appsFld="$env:USERPROFILEAppDataLocalMicrosoftWindowsApps";
$pyPath=(Resolve-Path "$env:USERPROFILEAppDataLocalProgramsPythonPython*\")
$Env:Path = (($Env:Path.Split(';') | Where-Object { $_ -ne "$appsFld" }) -join ';');
$Env:Path = (($Env:Path.Split(';') | Where-Object { $_ -ne "$pyPath" }) -join ';');
$Env:Path += ";$pyPath";
$Env:Path +=";$appsFld";
[Environment]::SetEnvironmentVariable("PATH", "$Env:Path", "Machine")
然后我就可以正常运行python了:
> python
Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit
解决方案 10:
所以,我遇到了同样的问题。我的答案是将 python 添加到 PATH 中,不仅对于用户变量,而且对于系统变量也是如此。现在一切正常。
所以,我在 VENV 中遇到了同样的问题。我通过输入 >> python.exe 解决了它,但每次都添加 .exe 有点紧张。
还可以尝试在 cmd 中输入 python.exe。
解决方案 11:
对于使用 pyenv-win 的任何人来说,这都是一个额外的注意事项:关闭应用程序执行别名后,运行pyenv rehash
。您可能还需要关闭/重新打开 CMD 或 PowerShell 窗口。
解决方案 12:
以上方法都没有解决我的问题。
让我与大家分享我的解决方案。
关键修复(解决方案)
开始 -> 搜索 -> 键入:cmd
-> 启动
看看 Python 正在带来什么
> where python
您应该将最后一个文件夹更改为
PythonXXX
> cd %USERPROFILE%AppDataLocalProgramsPythonPython312
添加指向正确 python.exe 的 python3 硬链接
> mklink /H python3.exe python.exe
调查
让我们看看 PATH 里面有什么
C:Users/user>path
PATH=...omit..
C:cr5000Lightningprograms;
C:Users/userAppDataLocalProgramsPythonPython312Scripts;
C:Users/userAppDataLocalProgramsPythonPython312;
C:Users/userAppDataLocalMicrosoftWindowsApps;
您可以看到上面的 python 和脚本都在 WindowsApps 之前。'import site' failed
当我尝试使用任何脚本运行 python 时,我总是得到 python2。
C:Users/user>python
'import site' failed; use -v for traceback
Python 2.0 (#0, Oct 9 2020, 12:12:52) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
>>> ^Z^Z
目前已知的事实:
别名已关闭
PATH 已添加并重新排列
C:Users/user>where python
C:cr5000Lightningprogramspython.exe
C:Users/userAppDataLocalProgramsPythonPython312python.exe
啊哈,在另一个程序的文件夹深处有一个鬼鬼祟祟的 python.exe,这是我独特的软件混淆情况,并且 cr5000 在系统 PATH 中,我无法让用户 PATH 优先于系统,所以我必须添加一个带有符号链接的 python3 别名。
C:Users/user>python3
'python3' is not recognized as an internal or external command,
operable program or batch file.
C:Users/userAppDataLocalProgramsPythonPython312>mklink /H python3.exe python.exe
Hardlink created for python3.exe <<===>> python.exe
C:Users/user>python3
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z^Z
所以...我终于解决了我的问题。
解决方案 13:
如果您有多个版本的 Python,Py 是一个对其他任务有用的别名。因此不建议取消选中应用程序执行别名按钮。查找安装的 Python 版本的“新”方法是输入 CMD
py -V
解决方案 14:
总结一下您的问题:在命令提示符中运行 Python 命令时,它会打开 Microsoft Store 而不是运行 Python。
就我而言,Python 3.12 是全新安装的,并且还确保在安装过程中检查 PATH 变量选项。以管理员身份运行命令提示符为我解决了这个问题。如果需要,请按照以下方法操作:
打开开始菜单:按 Windows 键或单击开始按钮。
搜索“cmd”:在搜索栏中输入 cmd 以查找命令提示符。
在搜索结果中右键单击“命令提示符”。
从上下文菜单中选择以管理员身份运行。
执行 Python 命令:在管理员命令提示符窗口中,键入 python 并按 Enter。
现在,无需打开 Microsoft Store,正确的 Python 环境就可以顺利执行。
解决方案 15:
补充一点问题。即使我输入了pip freeze
,也没有显示任何内容。
这是我所做的: Python 应用程序在 中有多个实例/AppData/Local/Microsoft/WindowApps
。
我删除了那些然后它就起作用了。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理必备:盘点2024年13款好用的项目管理软件