Pycharm 正在为 Python 版本 3.6 生成语言错误,尽管解释器是 3.9

Pycharm is generating language errors for Python version 3.6 although interpreter is 3.9

语言解释器设置为 Python 3.9 版本:

但是 Python 暂存文件正在被某种 3.6 解释器解析:

请注意,我在两个不同的暂存文件中创建了相同的错误。为什么会发生这种情况,是否有解决方法[除了从头开始创建一个全新的项目]?

我在 Pycharm Professional 2021.3.1

Update 根据@TurePaisson 的回答,他可能已经设置了 Code is compatible with specific Python。这是一个精明的猜测 - 但事实证明我没有设置:

Update 以下片段可用于测试 python3.6 vs 3.8+

x = (y := 3) + 7 

在首选项对话框中,搜索“版本”,您会在 Editor/Inspections 下找到一个检查“代码与特定 Python 版本兼容”,其中包含要检查的版本的复选框.

我最终创建了一个新的 python interpeter 版本 3.9 并为 project interpreter 选择了它。 Pycharm 中显然存在一些错误,它并不总是在 interpeters/versions 之间干净利落地切换 - 因此有时显然需要从头开始。

首先我要说的是,我尝试用谷歌搜索确切的错误消息,但没有任何重大结果(这就是 post 将其作为路标留下的原因):

"Python version 3.6 does not support assignment expressions"

我尝试使用 PyCharm 版本 2021.2.2、2021.2.4 和 2022.1 Pro(在 Python 3.6 和 Python 3.9 之间切换)但我无法重现问题中显示的确切问题(我无法更新到确切的 2021.3.1)并且可能有一些不明显的项目设置。

所以我有两个预感:

  1. 可能有什么东西卡住了 with the inspection profiles 因为 OP 似乎是从存储库中工作的。

  2. 根据经验,我的下一个猜测是尝试更改“运行 配置”的解释器版本,因为如果它取代 [=33=,则文档中没有明确说明] 在 Settings > Project > Python Interpreter 中选择的解释器用于 linter 检查。从我的测试来看,它目前没有,但显然它对 OP 有效......也许通过重建索引并刷新后台 linter 进程。

跟进@bad_coder 的修复尝试,将解释为:

check the Run Configuration for pointing to a different python interpreter than the project level one

这个修复对我有用:

  1. 调出 Run [Context menu] | Edit Configurations

  1. Python interpreter改成合适的: 下图是口译员说到较早的语言水平的情况。转到下拉菜单和 select 一个正确的 [python 3.8+] interpeter。