4 ms·
But why drop Python 3.5 as well? Other than f-string, I'm not sure what critical features were brought in with 3.6.
by mywittyname 6y ago
But why drop Python 3.5 as well? Other than f-string, I'm not sure what critical features were brought in with 3.6.
- wmichelin 6y agoI don't see why you'd keep 3.5 around
- mikepurvis 6y agoUbuntu 16.04 has Python 3.5 as its default `python3`.
- awestroke 6y agoI don't see why you'd keep 16.04 around
- mikepurvis 6y agoIt's supported until the end of April. Obviously we're in the process of migrating things, but it's either supported or it's not, and as long as it's supported, it should work.
- dragonwriter 6y agoIt probably would work if you didn't subvert it by trying to use the latest and greatest pip from pyPI instead of the OS python-pip package.
- mikepurvis 6y agoUsing the latest pip is the will of the PyPA, and they let you know this on every invocation that touches the network: You are using pip version 8.1.1, however version 21.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. There are also packages and workflows which break on the older pips, and this has been justified on the basis that everyone can always just use the latest.
- oconnor663 6y agoIs it common to use the system version of Python with the latest version of Pip?
- carlio 6y agoBoth Ubuntu 16.04 and Python 3.5 are end-of-life. Older versions of pip will work, but newer versions drop the legacy compatability. If you have an out-of-date system you can still use an old pip just fine.
- kingosticks 6y ago16.04 is EOL on April 30, 2021. Even so, the idea of expecting to run the latest version of a package on an stability-focused operating system released almost 4 years ago seems hopeful.
- mikepurvis 6y agoIndeed. We're hitting this on some Ubuntu 16.04 (supported until April 2021!) build containers which start their work with the suggested self-upgrade of `pip install -u pip` that then bombs out with SyntaxErrors on subsequent operations due to f-string usage.
- computronus 6y agoWe (my team) hit this as well with an automated compatibility test running on Ubuntu 16.04. I decided to just change the test to install Python 3.8 from the deadsnakes PPA, and then use get-pip.py to install pip. https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa This does change the test to no longer use Python 3.5, but considering a) we'd already dropped support for Python 3.5 for the code we were testing, b) Python 3.5 is EOL and c) Ubuntu 16.04 will be soon, it didn't seem worth trying to stay on 3.5.
- mikepurvis 6y agoThis approach is okay if you can work entirely in an environment (venv or otherwise) that is unmoored from the underlying system. But usually the reason to use an older OS is because you want to be linking to specific versions of boost or some other dependency that's a pain to build and install from source, so depending on your scenario, installing a deadsnakes python may not work if you're depending on there being a corresponding `python3-xxxx` package that links up system python to bindings for a particular library.
- onei 6y agoSupported by maintainers of Ubuntu, not by the maintainers of Pip. With 3 months to go, perhaps it is time to think about upgrading?
- mikepurvis 6y agoUnnecessary snark is unnecessary. We already did the bulk of our 16.04 -> 20.04 upgrades last summer, and were planning on mopping up the remainders over the next two months, while there was still time. That's the point of these support commitments with clearly defined timelines— allowing people to plan for this stuff to happen when it suits them. Now we have a handful of broken support VMs and other things which have to be migrated in a rush instead of according to the planned schedule.
- dragonwriter 6y ago> Other than f-string, I'm not sure what critical features were brought in with 3.6. * type annotation for variables * asynchronous generators * asynchronous comprehensions I can see any of those three seeing use in pip and being worth dropping earlier Python for more than f-strings (or underscores in numeric literals, the other highlighted py 3.6 new feature.)