Software-update: Python 3.10.2

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. De release notes voor deze uitgave laten enkele belangrijke verbeteringen zien:

Python 3.10.2

This is a special bugfix release ahead of schedule to address a memory leak that was happening on certain function calls when using Cython. The memory leak consisted of a small constant amount of bytes in certain function calls from Cython code. Although in most cases this was not very noticeable, it was very impactful for long-running applications and certain usage patterns. Check bpo-46347 for more information.

Upgrading existing Python 3.10 installations is highly recommended. Even though this is an expedited release, it still contains over 100 other bug fixes. See the change log for details. The next Python 3.10 maintenance release will be 3.10.3, currently scheduled for April 4.

Python

Versienummer 3.10.2
Releasestatus Final
Besturingssystemen Scripttaal, 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/
Bestandsgrootte 26,93MB
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

19-01-2022 • 11:48

12

Bron: Python Insider

Reacties (12)

12
12
4
1
0
2
Wijzig sortering
vond python geweldig, maar krijg meer de indruk dat het een 'tering bende' geworden is met die verschillende builds en deploy tools. Serieus 4uur bezig geweest om werkende python library te kunnen bouwen, om een python script goed werkend te krijgen. Het begon zo mooi
Opzich deel ik deze ervaring toen ik een aantal jaar geleden voor het eerst even een simpel python script wilde starten. Hoe python omgaat met libraries installeren en includen was toen echt een clusterfuck. Meteen mee gekapt omdat ik niet verder kwam.

Sinds ik een aantal maanden weer ben begonnen met Python, gebruik ik virtualenv en is deze koppijn verleden tijd. Probeer dat eens? Met virtualenv kan je per project een soort eigen python instantie bijhouden. Libraries installeer je niet meer globaal, maar worden per virtualenv geinstalleerd. Dat was in mijn geval de oplossing voor het hele library binnenhalen + includen gedrocht.

https://virtualenv.pypa.io/en/latest/
Nieuwsgierig: welke library? (of was het iets van jezelf?)
Vanwaar dat je het zo graag zelf wil compileren ?
Denk dat ie een oud script wilde gebruiken die een oude third party library van pypi vereiste. Dat houdt in de praktijk in dat je voor een recente Python omgeving geen wheel (kant en klare versie van de library) kan krijgen, dus dan moet Python het gaan compileren. Dan stap je vaak een mijnenveld in van dependencies op vergelijkbare oude meuk, naast het nog eens nodig hebben van de juiste C++ compiler (als je niet op mac/linux zit) en ga zo maar door.

Lang verhaal kort: als je met moderne libraries werkt is er bijna nooit gedonder en werkt alles vlot zoals je zou verwachten. Soms is de nieuwste versie nog niet perfect ondersteund (pygame is zo'n library die pas na een tijdje voor de nieuwste versie een wheel heeft), maar doorgaans gaat er weinig mis. Maar wil je een tijdje 'terug in de tijd' zet dan maar een pot koffie en ik wens je veel succes, dat is gewoonweg een praktisch nadeel aan Python's ecosysteem. Vaak is daar omheen te werken (ik neem gewoonweg de moeite niet, ik zoek wel een moderner alternatief), maar ik kan me voorstellen dat zeker in bedrijfsmatige omgevingen je soms wel voor zo'n blok gezet kan worden.
Mjah voor niet pure python libs zou je inderdaad wel tegen die problemen aan kunnen lopen.
Maar goed dan is mijn volgende vraag waarom je nu al op python 3.10 wilt zitten als je met dat soort dependencies zit, gebruik dan inderdaad de tijd om af te wachten tot het of voor je gedaan is, of zoek indien mogelijk inderdaad een alternatief.

En in z'n algemeenheid is het build-tools landschap er niet bepaald overzichtelijker op geworden, dus als je je een dependency hebt die net weer een nieuwe spannende C-buildtool vereist dan kan dat wel een feestje zijn, maar dat heeft weer wat minder met python te maken.
@himlims_ Kan je hier wat dieper op ingaan? Wat probeerde je juist te doen en waar ben je tegenaan gelopen?

[Reactie gewijzigd door k53 op 22 juli 2024 18:44]

python scripte x vereist libs y, probeer je die te installeren geloof via pip (?) een grote zooi, paden die niet meer werken, binary die gaar is etc.
Dit probleem is niet Python eigen, maar die dependency hell speelt bij elke programmeer taal. Wat ik zeker kan aanraden en zelf ook gebruik, zijn virtual environments. Omdat elke virtual environment gescheiden is van elkaar, ben je immuun voor het probleem dat je schetst. Ik kan Python Virtual Environments: A Primer aanraden om hiermee aan de slag te gaan.
In dat opzicht kan ik heel erg Conda adviseren. Zelf geen ervaring met venv, maar ik vind het heerlijk om met conda te werken. Ik gebruik het d.m.v. MiniConda. Daarna bouw ik mijn eigen virtuele omgevingen op. Mocht het nodig zijn, dan zet ik Python 3.8, 3.9 en 3.10 naast elkaar op. Heerlijk! Werkt prima op zowel Mac als Windows (geen ervaring op Linux, maar dat zal net zo plezierig zijn, schat ik in).
Deze versie of eigenlijk, als ik zo kon lezen, heeft een probleem bij het "compilen". Ik kwam dit zelf tegen en ook op verschillende forums. Als je setuptools gebruikt (en volgens forums ook via pyinstaller) kan je in iedergeval in windows binaries een probleem krijgen.
In de logfile van de gecompileerde versie krijg je na het starten een melding over, "_bootlocale".
Dit is een module die eruit gehaald is maar nog wel bij het compileren wordt getracht toe te voegen.
Bij het compileren zie je ook foutmelding over deze module.
Via een command line switch zou je het kunnen omzeilen, maar dit werkt alleen bij pyinstaller.
Ik ben niet zo ervaren met python en gebruikte setuptools en een setup.py. Dus ben maar teruggegaan naar python 3.9.

Weet iemand of dit op een manier toch te omzeilen is?

Op dit item kan niet meer gereageerd worden.