Software-update: Python 3.7.14 / 3.8.14 / 3.9.14 / 3.10.7

Python logo (75 pix)Python is een objectgeoriënteerde programmeertaal die kan worden gebruikt om eenvoudige tot complexe, platformonafhankelijke applicaties te ontwikkelen. Het is in de jaren negentig ontworpen door Guido van Rossum, die destijds in Amsterdam voor het CWI werkte. Guido was als BDFL betrokken bij de ontwikkeling van Python. Hij heeft daarnaast voor Dropbox gewerkt, ging daarna met pensioen en toen dat niet echt beviel, ging hij aan de slag bij Microsoft. Er zijn nu updates van Python 3.7, 3.8, 3.9 en 3.10 verschenen, die een verzameling van fouten en beveiligingsproblemen moet verhelpen.

Python releases 3.10.7, 3.9.14, 3.8.14, and 3.7.14 are now available

We have some security content, and plenty of regular bug fixes for 3.10. Let’s dive right in.

CVE-2020-10735

Converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now raises a ValueError if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity.

Security releases for 3.9.14, 3.8.14, and 3.7.14 are made available simultaneously to address this issue, along with some less urgent security content. Upgrading your installations is highly recommended.

This bugfix version of Python was released out-of-schedule to address the CVE, and as such contains a smaller number of changes compared to 3.10.6 (200 commits), or in fact 3.9.7 (187 commits) at the same stage of the release cycle a year ago. But there’s still over a 100 commits in this latest Python version so it’s worth checking out the change log.

Python

Versienummer 3.7.14 / 3.8.14 / 3.9.14 / 3.1
Releasestatus Final
Besturingssystemen Windows 7, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website Python Insider
Download https://www.python.org/downloads/release/python-3107/
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

07-09-2022 • 20:39

12

Submitter: XtremeFast93

Bron: Python Insider

Reacties (11)

11
11
8
2
0
1
Wijzig sortering
Ik zou toch liever een lagere frequentie van niet compatible upgrades zien. Elk jaar een nieuwe versie die weer vijf jaar bijgehouden moet worden is best veel.
Eens per twee tot drie jaar feature upgrades lijkt meer dan voldoende, toch?
Gezien ze in 1 bericht het bijwerken van 4 subversies nomen houdt naar mijn idee in dat ze met beide kampen rekening houden. Voor zover ik nu even snel kan zien: 3.7 is van juli 2018, 3.10 is van oktober 2021.

Als je ergens in 2019 met je ontwikkeling in 3.7 bent begonnen: Die wordt nog steeds bijgehouden met het idee dat de compatibiliteit van alle 3.7 versies is verzorgd. Ga je met je ontwikkeling naar een nieuwe versie, dan zou ik de dan courante versie pakken, nu dus 3.10, dan kan je weer redelijk lang mee.
in hoe verre is 3.10 backwards compatible met 3.9.x (in tot welk 3.9.x) - en wat zou evt. een reden zijn om een 3.9 te "porten" naar 3.10 ?

[Reactie gewijzigd door shades op 23 juli 2024 13:37]

Die vind ik juist niet sluitend, eerst wordt verteld wat python is en hoe geweldig het is. Vervolgens komen er dingen aan bod die nieuw zijn in 3.9 en 3.10. Uiteindelijk vind je een voorbeeld waarbij match nieuw is in 3.10, maar het voorbeeld in 3.9 met if then else zal ook nog steeds wel werken.

Uiteindelijk zie ik een duidelijk verschil in het voorbeeld Better type hinting, maar het wordt me er niet duidelijk of het 3.9 voorbeeld niet in 3.10 werkt en vice versa.

Dus het hele verhaal vertelt zero over backwards compatibility helaas.
Ik heb alleen gehad dat toen ze 3.10 uitbrachten een aantal packages die ik gebruik (bv. Pandas) nog niet aangepast waren voor 3.10, dus ik moest 3-4 weken wachten voordat ik over kon. Ik had geen zin om handmatig nightly builds te gaan installeren met pip.

Dus main releases (bv 3.9 naar 3.10) geeft some issues. Point releases (3.9.6 naar 3.9.7) eigenlijk nooit, omdat het bug fixes zijn.
okay, dus er zijn inderdaad dingen die niet backwards compatible zijn, alleen God knows what.
Werk je bij de Telegraaf of zo? Dit staat zoals altijd gewoon in de major release notes, bij ‘Porting to <versie>‘ https://docs.python.org/3...ml#porting-to-python-3-10

met je ‘alleen God knows’ kom op zeg, doe een beetje normaal zoekwerk

[Reactie gewijzigd door The Third Man op 23 juli 2024 13:37]

Volgens de docs, zo te zien een paar dingen verwijderd en grotendeels verandering in de C (API), en dus zullen de meeste gebruikers die alleen python schrijven prima kunnen switchen, zolang hun dependencies (zoals pandas) 3.10 ondersteunen.

https://docs.python.org/3/whatsnew/3.10.html#removed
Of, en dat is veel erger(?) niet forward compatible?
Packages kunnen inderdaad incompible zijn wat betreft releases voor een specifieke Python versie.
Dat gaat vooral om Python packages met extension modules, die dus code geschreven in een andere taal wrappen. Bij zulke packages maak je een python wheel met de benodigde gecompileerde code. Als er nog geen wheel van de developer beschikbaar is loop je vaak tegen een build proces aan bij het installeren. Als je geen verhoogde rechten hebt kan je daardoor soms niet een package gebruiken zonder wheel.

Je kan het ook andersom bekijken. Python packages die actief onderhouden worden bouwen wheels voor alle python versies die de python software foundation ondersteunen. Als je dus tegen problemen aan loopt met een ontbrekend wheel kan dat een indicatie zijn dat je een dependency hebt die niet actief onderhouden wordt.

Op dit item kan niet meer gereageerd worden.