'Invalid Python SDK' 在 PyCharm 中创建新项目后立即出错

'Invalid Python SDK' error right after creating a new project in PyCharm

背景

前段时间我的 Windows 电脑在使用 PyCharm 时严重崩溃 - 我记得一些关于内存的错误,然后是没有蓝屏的严重崩溃 - 只是黑色,有一些细垂直线和重新启动到 Windows 安装/修复屏幕。从那以后,我就遇到了这个问题,我在网上找不到解决办法。

编辑:显然,这与问题无关。

问题

每当我打开一个项目或创建一个新项目时,都会出现错误 Python SDK 错误消息。


**Invalid Python SDK**
Cannot set up a Python SDKat Python 3.9 (%projectName%) (%projectPath%).The SDK seems to be invalid.

此外,这就是我关闭此消息时 work environment 的样子。在项目window中,venv目录(及其下的每个目录)被标记为Exclusion,而在代码中,print(f'Hi, {name}')函数被标记为未解决的引用错误,如下所示.但是,该程序可以完美执行。

此外,当我转到 File -> Settings -> Project -> Python Interpreter 处的 Python 解释器设置时,底部有一个黄色条显示:

Non-zero exit code (4).

一段时间后说:

Python packaging tools not found.

安装后,没有任何变化,我无法从此屏幕添加包(“+”按钮变灰):

当我尝试检查 Python 解释器路径时,没有显示路径,我不知道那是什么意思:

简而言之,所有默认的 Python 函数(如 print)都被标记为错误,即使它们在执行时有效。这使得编码 非常 混乱,因为我无法快速区分真正的错误和 'errors'.

寻找解决方案

通常这是解释器设置或路径的问题,但我已经尝试了类似问题的其他答案中提出的大部分方法。仅举几例:

应该有链接,但我在 Stack Overflow 上没有足够的声誉 post 他们提出问题。然而,这些可以在 Google 中轻松查找,所有这些都已 posted 到 Stack Overflow。

我试过的

我应该提一下,我尝试的第一件事是删除和安装 PyCharm、所有用户配置以及 Python 本身。我从官方网站和 PyCharm 应用程序安装了 Python,两种方法都以相同的结果结束。

  1. File -> Invalidate Caches... -> Invalidate and restart. 没有成功。
  2. 正在检查 Edit Configurations 中的文件解释器。不知道该怎么做。结果:

  1. 正在刷新解释器路径。即使是现在,路径也没有结果。

  1. 删除解释器并重新添加。没有结果。
  2. 正在删除 .idea 文件夹。没有结果。
  3. 正在删除 %homepath%/.PyCharm50 下的 PyCharm 用户首选项。不过我没有那个文件夹。
  4. 来回切换翻译。没有结果。
  5. 正在不同的位置创建新的解释器。没有结果。
  6. 将项目目录标记为根 ProjectName -> Mark Directory as -> Sources Root 并将其他目录取消标记为已排除。没有结果。
  7. 不使用翻译。是的,它不再将非错误标记为错误。但是代码不起作用。这对我来说不是解决方案。
  8. 正在检查 venv/pyvenv.cfg 是否正确设置了路径。这些我觉得不错。

  1. 正在检查 Windows 环境变量 - 路径变量。它在用户部分,但不在系统部分。我添加了,重启了还是没有结果
  2. 正在更改 Windows 中的帐户名称。我的帐户名称是 'username',我的用户文件夹就是这样命名的“C:\Users\username”,但后来我将它连接到 Microsoft 帐户,我的用户名现在是带有 space 的用户名我真的无法改变它。我的文件夹保持不变。不确定我是否可以那样修复它。

对于我尝试的最后两件事,我还应该补充一点,我将我的 Windows 用户名从 'username' 更改为 'user name' space,但那不是'直到最近。

我附上 idea.log file 供您检查。我用 'User Name' 替换了我的真实用户名以突出 space.

的存在

好吧,那是幸运儿!因此,我发布我的评论作为答案:

问题是由路径中的非ASCII字符引起的,解决方法是将其删除。正如@TheLazyScripter 所指出的,这是一个已知问题。