Sunsetting Python 2 Support

Hello Everyone –

We’ve spoken about Python 2 support across various posts, libraries, changelogs, and announcements over the year. This post provides some background on our decision to sunset Python 2 support and our timeline for doing so.

Timeline

Plotly.py

Plotly.py has dropped support for Python 2 in plotly.py 5.0 on June 23, 2021.

Dash

Dash will drop support in the forthcoming Dash 2.0 release later this month.

Dash Enterprise

Dash Enterprise will no longer support Python 2 in the forthcoming Dash Enterprise releases in Fall 2021.

This includes:

  • The version of Python that can be specified within apps via runtime.txt
  • Support for Python 2 in various Dash Enterprise libraries: dash-design-kit, dash-snapshots, dash-embedded, dash-notes, databricks-dash.

Background

We try our best not to introduce any breaking changes into our software. So, we’ve supported Python 2 far longer than many other libraries and the Python Software Foundation itself.

However, supporting old versions of Python incurs its own cost in our development, testing, and maintenance. Continuing to support old versions of Python prevents the community from “moving on” and therefore passes on this cost to the rest of the community packages & maintainers.

From the Python Software Foundation:

We needed to sunset Python 2 so we can help Python users by improving Python faster.

We released Python 2.0 in 2000. We realized a few years later that we needed to make big changes to improve Python. So in 2006, we started Python 3.0. Many people did not upgrade, and we did not want to hurt them. So, for many years, we have kept improving and publishing both Python 2 and Python 3.

But this makes it hard to improve Python. There are improvements Python 2 can’t handle. And we have less time to work on making Python 3 better and faster.

And if many people keep using Python 2, then that makes it hard for the volunteers who use Python to make software. They can’t use the good new things in Python 3 to improve the tools they make.

We did not want to hurt the people using Python 2. So, in 2008, we announced that we would sunset Python 2 in 2015, and asked people to upgrade before then. Some did, but many did not. So, in 2014, we extended that sunset till 2020.

The Python Software Foundation dropped support for Python 2 19 months ago on January 1st, 2020:

As of January 1st, 2020 no new bug reports, fixes, or changes will be made to Python 2, and Python 2 is no longer supported.

If people find catastrophic security problems in Python 2, or in software written in Python 2, then most volunteers will not help fix them. If you need help with Python 2 software, then many volunteers will not help you, and over time fewer and fewer volunteers will be able to help you. You will lose chances to use good tools because they will only run on Python 3, and you will slow down people who depend on you and work with you.

1 Like

Have you decided already which versions of Python 3 Dash 2.0 will support? 3.6+?

Great question. We’ll be supporting >= 3.6.x going forward.

From the PSF:

Python 3.6.8 is planned to be the last bugfix release for 3.6.x. Following the release of 3.6.8, we plan to provide security fixes for Python 3.6 as needed through 2021, five years following its initial release.

1 Like