[Numpy-discussion] Proposal of timeline for dropping Python 2.7 support

Nathaniel Smith njs at pobox.com
Tue Nov 7 18:40:31 EST 2017

On Nov 7, 2017 2:15 PM, "Chris Barker" <chris.barker at noaa.gov> wrote:

On Mon, Nov 6, 2017 at 6:14 PM, Charles R Harris <charlesr.harris at gmail.com>

> Also -- if py2.7 continues to see the use I expect it will well past when
>>> pyton.org officially drops it, I wouldn't be surprised if a Python2.7
>>> Windows build based on a newer compiler would come along -- perhaps by
>>> Anaconda or conda-forge, or ???
>> I suspect that this will indeed happen. I am aware of multiple companies
>> following this path already (building python + numpy themselves with a
>> newer MS compiler).
> I think Anaconda is talking about distributing a compiler, but what that
> will be on windows is anyone's guess. When we drop 2.7, there is a lot of
> compatibility crud that it would be nice to get rid of, and if we do that
> then NumPy will no longer compile against 2.7. I suspect some companies
> have just been putting off the task of upgrading to Python 3, which should
> be pretty straight forward these days apart from system code that needs to
> do a lot of work with bytes.

I agree, and if there is a compelling reason to upgrade, folks WILL do it.
But I've been amazed over the years at folks' desire to stick with what
they have! And I'm guilty too, anything new I start with py3, but older
larger codebases are still py2, I just can't find the energy to spend a the
week or so it would probably take to update everything...

But in the original post, the Windows Compiler issue was mentioned, so
there seems to be two reasons to drop py2:

A) wanting to use py3 only features.
B) wanting to use never C (C++?) compiler features.

I suggest we be clear about which of these is driving the decisions, and
explicit about the goals. That is, if (A) is critical, we don't even have
to talk about (B)

But we could choose to do (B) without doing (A) -- I suspect there will be
a user base for that....

The problem is it's hard to predict the future. Right now neither PyPI nor
conda provide any way to distribute binaries for py27-but-with-a-newer-ABI,
and maybe they never will; or maybe they will eventually, but not enough
people use them to justify keeping py2 support given the other overheads;
or... who knows, really.

Right now, the decision in front of us is what to tell people who ask about
numpy's py2 support plans, so that they can make their own plans. Given
what we know right now, I don't think we should promise to keep support
past 2018. If we get there and the situation's changed, and there's both
desire and means to extend support we can revisit that. But's better to
under-promise and possibly over-deliver, instead of promising to support
py2 until after it becomes a millstone around our necks and then realizing
we haven't warned anyone and are stuck supporting it another year beyond

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20171107/1b4ab531/attachment-0001.html>

More information about the NumPy-Discussion mailing list