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

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

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


当前回答

这里的主要问题是路径中的顺序从上到下调用windows,如果没有其他python,则在%USERPROFILE%\AppData\Local\Microsoft\WindowsApps中首先调用python.exe。在该行上方的PATH中。

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

这里有一个例子:

点击“开始”→开始输入“Env”→选择“编辑系统环境变量”→“环境变量”按钮→在上方列表中选择“路径”条目→点击“编辑”。

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

其他回答

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

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

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

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

我把一个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

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

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

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

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