Home > front end >  Python version 3.6 does not support assignment expressions
Python version 3.6 does not support assignment expressions

Time:04-24

The language interpreter is set to a Python 3.9 version:

Python 3.9 interpreter

But a Python scratch file is being parsed by some kind of 3.6 interpreter:

Complaint about 3.6 language features

Note that I created in two different scratch files and the same error occurs. Why would this happen and is there a workaround [short of creating an entirely new project from scratch]?

I am on Pycharm Professional 2021.3.1

Update based on answer by @TurePaisson he though maybe the Code is compatible with specific Python were set. That was a shrewd guess - but turns out I have not set that:

enter image description here

enter image description here

Update The following snippet can be used to test python3.6 vs 3.8

x = (y := 3)   7 

CodePudding user response:

In the preferences dialog, search for "versions" and you will find, under Editor/Inspections, an inspection "Code is compatible with specific Python versions" with checkboxes for which versions to check against.

CodePudding user response:

I ended up creating a new python interpeter with version 3.9 and selecting it for the project interpreter. There's clearly some bug within Pycharm that it does not always cleanly switch among interpeters/versions - so starting from scratch is sometimes apparently needed.

CodePudding user response:

I'll start by saying that I tried googling the exact error message and there aren't any significant hits (that's reason alone to post this leaving it as a roadsign):

"Python version 3.6 does not support assignment expressions"

I tried this with PyCharm versions 2021.2.2, 2021.2.4 and 2022.1 Pro (switching between Python 3.6 and Python 3.9) but I wasn't able to reproduce the exact problem that's shown in the question (I was unable to update to the exact 2021.3.1) and there might be some Project setting that's not obvious.

So I have 2 hunches:

  1. It's possible there's something stuck with the inspection profiles since the OP seems to be working from a repository.

  2. From experience my next guess (this is undocumented behavior so there's no guarantee if it will work, on what versions, or why exactly it works) would be to try and change the interpreter version of the "run configuration" because it may supersede the project-wide interpreter chosen in Settings > Project > Python Interpreter in regard to what version the linter is using to inspect the code (this can be a convenience if you're working on a project that has snippets of different Python versions.) This hunch didn't work for me this time, but apparently it worked for the OP...

  • Related