Streamlit will deprecate Python 2 in February

Hi all,

:mega: We have decided to stop supporting Python 2 at some point in February 2020, so I wanted to say a few words about the reasoning behind this decision:

Python 2 officially reached its end of life on January 1st 2020. And in the months preceding that, several projects stopped supporting it, with many others pledging to do so ASAP. I’m talking big famous projects like Pandas, NumPy, SciPy, SymPy, Bokeh, Pillow, Tensorflow, Pytorch, Scikit Learn, and Tornado (among so many others); they have all already dropped it.

And since Streamlit depends on so many of those, for the past few months we’ve been playing a game of engineering whack-a-mole, modifying our requirements and trying to stretch our Python 2 support as much as possible. It’s been quite the ride! — but now we’ve reached a point where it’s just not feasible to continue. Too many core dependencies have jumped ship.

Now it’s our turn. And let me tell you, our engineers are totally stoked :smiley:. By dropping Python 2 we’ll be able to remove a ton of compatibility code from Streamlit, we’ll reduce development time, reduce testing time, and we’ll finally be able to upgrade to the latest version of Tornado (or perhaps aiohttp!) which has much better performance.

So TLDR: this change is being forced upon us, but it will have the positive effect that it will allow us to bring ever more :sparkles: awesomeness :sparkles: into Streamlit, at an ever faster speed!

PS: If this change is going to have a negative impact for you or your company, please reach out to us at or post below.