CMD打开Windows Store,当我输入'python'

今天,当我试图在Sublime Text 3上运行简单的代码时,出现了以下消息:

没有找到Python,但可以从Microsoft Store: https://go.microsoft.com/fwlink?linkID=2082640安装

当我在CMD中输入Python时,它会打开Windows商店,让我下载Python 3.7。这个问题今天就开始了,没有什么好理由。我没有更改或下载任何关于Python的内容,并且已经尝试重新安装Python,并且Path环境变量是正确的。

222233 次浏览

使用Windows搜索栏找到“管理应用程序执行别名”。Python应该有两个别名。取消选择它们,这将允许通常的Python别名" Python "和“;python3"。请看下图。

Enter image description here

我认为我们在安装Python时遇到了这个问题,因为在新的Windows安装中,别名处于ON位置,如下图所示。当打开时,Windows将一个名为python.exepython3.exe的空文件放在名为%USERPROFILE%\AppData\Local\Microsoft\WindowsApps的目录中。这是别名。

Enter image description here

然后微软将该目录放在“路径”列表的顶部。环境变量。

Enter image description here

当你输入“python"在cmd中,它会搜索您的“路径”中列出的目录;环境变量页面从上到下。因此,如果你在新的Windows 10安装后安装了Python,然后被重定向到Windows商店,这是因为有两个Python. exe:应用程序执行别名页面中的别名,以及你安装Python的地方的真实别名。但是cmd首先会找到应用程序的执行,别名python.exe,因为该目录位于路径的顶部。

我认为最简单的解决方案是像我之前建议的那样检查python.exepython3.exe为OFF,这将删除假的EXE文件文件。基于微软开发博客,他们表示他们创建这个系统部分是为了新的Python用户,特别是在学校学习Python的孩子,他们在安装它时遇到了麻烦。

创建这个别名是为了帮助刚开始学习Python的孩子安装它,并专注于学习编码。我认为如果你从Windows应用商店安装Python, Windows可能会删除这些别名。我们注意到,如果从其他来源手动安装,它们不会被删除。

(另外,空的/fake python.exe并不是真的空的。屏幕截图显示的是0 KB,但是输入“start ms-windows-store:”;在cmd中打开Windows应用程序商店,所以它可能只有一行,并有一种方法将其引导到Python页面。)

最后,正如Chipjust所建议的,你可以使用本文中解释的DOSKEY之类的东西为Python创建一个新别名,例如: 如何设置Windows下命令提示符的别名 < / em >

作为一个在Sublime Text中进行Python开发的人,我知道你说过Python解释器的路径是正确的,但是当你安装Python解释器时,一定要勾选将Python添加到path的选项。

我以前也有同样的问题直到我做了这个。

pythoninstall .png .png

这里的主要问题是路径中的顺序从上到下调用窗口,并且如果PATH 以上这一行中没有其他python.exe,则%USERPROFILE%\AppData\Local\Microsoft\WindowsApps中有python.exe首先被调用。

为了确保调用正确的python.exe,将Python解释器安装文件夹(包含python.exe)添加到%USERPROFILE%\AppData\Local\Microsoft\WindowsApps上方的PATH中

这里有一个例子:

  • 要到达这个位置,单击“时→开始输入“Env"→选择“编辑系统环境变量”;→“环境变量”;按钮→选择“路径”条目;点击“编辑”。

Enter image description here

  • Python组件应该位于顶部,如步骤5所示。如果没有,按下第6步中的按钮向上移动。

我在这方面也有问题,Windows在双击或cmd(命令)提示符中不识别Python或水蟒

  • 问题:无法在"python"中导入库;cmd。相反,Windows的“python”;CMD将用户带到他们不想去的地方。
  • 问题原因:在Windows的“环境变量”中,Windows在“%USERPROFILE%\AppData\Local\Microsoft\WindowsApps"目录中。

解决方案:我尝试删除WindowsApp目录中的python*.exe文件,但Windows不允许这样做,所以我打开了一个命令提示符,在&;%USERPROFILE%\AppData\Local\Microsoft\WindowsApp &;目录并输入:

del python.exe
del python3.exe

然后我创建了一个环境变量,链接到已安装的Python解释器链接。在我的例子中,它是C:\Anaconda3;C:\Anaconda3\脚本,以及其他一些良好的措施。

如果Python解释器已经安装,则从设置转到应用程序,特性,选择Python,然后选择modify。

再次选择modify并选择下一个:

Select next

然后会出现这个窗口:

Select add Python to environment variable

选择“将Python添加到环境变量”;然后点击安装按钮。然后再去应用&特性,单击修改,然后单击修复。 现在进入CMD并输入Python。 问题解决了。< / p >

给这个问题增加了一点内容。即使我输入pip freeze,它也没有显示任何东西。

以下是我所做的: /AppData/Local/Microsoft/WindowApps中的Python应用程序有多个实例

我删除了这些,然后它就工作了。

您可以手动将Python添加到Windows路径,如下所示:

  1. 开始运行框,输入sysdm.cpl

    Enter image description here

  2. 进入先进的选项卡,单击环境变量按钮

    Enter image description here

  3. 现在你需要找到相关的Python路径

    下面是Python应用程序路径的样子:

    Enter image description here

    这是Python脚本路径的样子:

    Enter image description here

  4. 选择Path变量,按编辑并添加两个路径(Python应用程序和Python脚本)

    Enter image description here

  5. 如果没有显示,按new而不是edit并填充新用户变量框

    Enter image description here

    这是我的变量值的样子:

    C:\Users\Ron\AppData\Local\Programs\Python\ Python37-32; C: \用户\罗恩\ AppData \本地Python \程序\ \ Python37-32 \脚本

    Enter image description here

就是这样!您只是将Python添加到Windows路径。

来源:鱼的数据

这是一个实现神奇功能的PowerShell脚本。

Remove-Item $env:USERPROFILE\AppData\Local\Microsoft\WindowsApps\python*.exe

对于使用pyenv-win的人,这是一个额外的注意事项:在关闭应用程序执行别名之后,运行pyenv rehash。您可能还需要关闭/重新打开CMD或PowerShell窗口。

所以,我也有同样的问题。 我的答案是将python添加到PATH中,不仅用于用户变量,还用于系统变量。

enter image description here

所以,我在VENV中遇到了同样的问题。 我通过输入>>python * * . exe * * 但是每次加。exe都有点紧张。

还可以尝试在cmd中输入python.exe。

因为这是一个常见的问题,这似乎是一个典型的问题,我想尝试对Python 3.7 Windows Store惨败(TM)进行一个完整的概述。

为什么会发生这种情况?

两件事的收敛:2011年之前的Windows Python启动器的介绍(以下简称py),以及Windows 10的更新2019年5月,显然是为了让Windows用户安装Python 更容易

哦。原来安装路径不是很好;它绕过了“longy"安装向导…其中包含一些用户认为非常有用的选项。它也导致了其他问题。更不用说它只是以稍微非标准的方式工作,有一定的局限性文件系统访问,因为它是一个商店应用程序,最初不能由py本身启动....

好吧,但是为什么这些因素会导致问题呢?

py引入以来,默认情况下,Windows Python安装程序不会将新的Python install添加到PATH。为什么?因为py的全部意义在于,它使用自己的逻辑来查找Python安装,基于命令行开关的某种组合,可能是源文件自己的shebang行。现在您的源文件可以与py而不是任何特定的python.exe相关联,并且当双击一个文件时,您可以获得类似linux的行为。同时,通过在命令行上运行py,你可以轻松地访问你需要的任何东西,而且你不必考虑最近安装的Python版本。因此,看似没有理由将这些Python安装放在PATH上。只有当最近安装的版本不是最新的版本时,才有可能让您感到困惑。对吧?

在这次更新中,Windows 10添加了“python.exe”;到Windows应用程序相关的文件夹,这是一个包装应用程序打开微软商店链接。我们的想法是,它在PATH上,但接近结尾;所以如果你安装了Python,它会被使用,否则包装器会被调用,并帮助你安装Python——这样你就可以实际运行你朋友在Discord上发送给你的那个随机的、完全信任的.py文件。

如果你安装的Python在PATH上,它会完美地工作。

哦。

(但是,你知道,py在8年前就已经被引入了。你可能会认为微软的某个人已经意识到了这个潜在的问题。也许不是一个特殊的快捷链接,他们可以制作一个实际的脚本来检查C:\Windows\py.exe或其他东西的存在。)

那么我有什么选择呢?

  • 当你安装新的Python版本时,你可以检查将新的Python版本添加到PATH的选项,并处理命令行中的python意味着其中一个特定的事实。如果需要更改,可以手动调整PATH变量。

  • 你可以在事后手动调整PATH变量。(或“Modify"安装Python来修复它。)这在其他几个答案中都有涉及。

  • 与此无关,您可以禁用包装器,如上面的答案所示。无论如何你都应该这么做;看到python在命令行失败比处理一个随机弹出的GUI窗口并提供为你安装一些东西要少得多,特别是当你知道你已经有了它。

  • 如果你想保持PATH为空,考虑为你的项目使用虚拟环境。当虚拟环境处于活动状态时,PATH将被修改为暂时,以便python表示该环境的Python安装。真的很方便。

  • 你可以告诉你的ide使用py而不是特定的Python安装,这样做甚至可能是有帮助的。我不知道。我不用。

我把一个powershell片段放在一起,它重新排序了WindowsApps和Python文件夹,所以Python是第一个。以管理员身份运行:

$appsFld="$env:USERPROFILE\AppData\Local\Microsoft\WindowsApps";
$pyPath=(Resolve-Path "$env:USERPROFILE\AppData\Local\Programs\Python\Python*\")
$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