Skip to content

Limited support for Python 2.7

Brett Cannon edited this page Sep 1, 2021 · 4 revisions

What's happening

Starting with the 2021.10 release of the Python extension, we will no longer ship support for Jedi 0.17 which is how we directly provided auto-complete support for Python 2.7 users. We will also be removing support for ctags and rope at the same time.

We also expect debugging support for Python 2.7 to end starting in 2022.

Why?

Jedi 0.17.2 was the last release of Jedi which supported Python 2.7 and it was released on 2020-07-17 (over a year ago); Jedi 0.18 then came out on 2020-12-25. Since that time we have begun using (and contributing to) jedi-language-server which puts Jedi behind LSP. This has given Jedi users better performance, refactoring, navigation.

As such, we are dropping Jedi 0.17 both to not cause our users to file issues upstream with Jedi as well as to lower our technical debt. In surveying Python 2.7 users, our Jedi support has not come out as a critical feature for them, and so we feel we will serve all users better, regardless of Python version usage, by dropping Jedi 0.17 and aligning with upstream Jedi better.

Because Python 2.7 is no longer maintained since January 2020, we strongly suggest you to upgrade your code to Python 3 as soon as you can. You can follow this guide -- which was written by one of our team members -- to learn how you can port your Python 2 code to Python 3.

What can I do if I'm still on Python 2.7?

For auto-completion, you can turn off auto-completions, or select Pylance as your language server as it may provide a good experience if the code is compatible enough with Python 3. We will continue to support selecting Python 2.7 as an interpreter in your workspace. For tools that keep support for Python 2.7 in their actively maintained version, we will continue to support using them with Python 2.7.

Clone this wiki locally