Python is omarmd door bedrijven vanwege de diverse toepassingen van de taal voor bijvoorbeeld dataprojecten. Maar ook ontwikkelaars storten zich erop met allerlei third party-projecten met library's, add-ons en andere projecten die ontwikkelaars helpen, zodat de taal breder en makkelijker ingezet kan worden.

Projecten als PyInstaller en WxPython zijn handig voor programmeurs die apps bouwen voor eindgebruikers. Andere, zoals PyPy, zijn gemaakt om serverside applicaties extra kracht te geven. En weer andere toepassingen zijn geschikt voor alle Python-apps, ongeacht waar ze draaien. Dit zijn zes projecten die de moeite waard zijn om te kennen.

Python Build Reasonableness (PBR)

Waar wordt het voor gebruikt?

Setuptools is een standaard Python subsystem voor het packagen van Python projecten. Het beheren van Setuptools voor een specifiek project kan lastig en omslachtig worden, zeker als bepaalde requirements automatisch gegenereerd moeten worden, documentatie moeten worden beheerd of data van project contributors bewerken.

Python BPR features

PBR is een afkorting voor Python Build Reasonableness en is een library voor het managen van Setuptools op een consistente manier. Het automatiseert verschillende aspecten van het packagen van Setuptools zoals versienummering, het genereren van Authors, Changelog files en het produceren van Sphinx-style documenten. PBR was ooit ontwikkeld als onderdeel van het OpenStack project, maar tegenwoordig hoeven je PBR-maintains niet langer verbonden te zijn met OpenStack.

WxPython

Waar wordt het voor gebruikt?

Python-ontwikkelaars die cross-platform desktopapplicaties willen maken kunnen kiezen voor verschillende toolkits. WxPython is een wrapper voor de WxWidgets library en gebruikt native UI elementen voor de ondersteunden host platformen waaronder Windows, Mac, Linux en andere Unix-achtige besturingssystemen.

WxPython 4.0 features

Oudere versies van WxPython hadden veel last van legacy-ontwerpkeuzes waardoor het traag was en niet lekker werkte. Dit hebben de makers gefixed door de 4.0-branch flink te wijzigen.

Ontwikkelaars moeten zo sneller kunnen beginnen met WxPython projecten. Ontwikkelaars die al projecten hebben lopen waarin de oude versie gebruikt werd zullen deze projecten eerst moeten aanpassen als zij verder willen met WxPython 4.0.

Mypy

De dynamiek van Python is een zege en een vloek. Het is geweldig om snel software mee te bouwen en vervelend om te debuggen, testen en discussiëren. Mypy voegt static checking toe aan Python tijdens het compileren waardoor Python-programma's consistenter zijn en makkelijker zijn bij te houden zonder runtime overhead toe te voegen.

Mypy 0.530 features

Versie 0.530 voegt ondersteuning toe voor protocollen, een experimentele type feature die gebruikt kan worden in Python subclasses. Daarnaast voegt het ook het "TypeDict"-type voor woordenboeken toe die kunnen worden gebruikt om een speciaal objecttype in te bewaren samen met opties om strenger types te controleren op een file-by-file basis.

PyPy

Waar wordt het voor gebruikt?

PyPy maakt Python-apps sneller met een just-in-time (JIT) compiler. Python-apps die door deze compiler zijn gehaald zijn gemiddeld 7,5 keer zo snel als de gewone versie. Helaas heeft PyPy regelmatig voor problemen gezorgd binnen Pythons bekendste frameworks en daarom heeft de nieuwe versie die onlangs uitkwam specifiek dit issue aangepakt.

Features van 5.9

Frameworks voor datawetenschappers als NumPy en Pandas draaien nu met PyPy's Python 2.7-compatibele versie. De meeste problemen komen van de manier waarop PyPy inprikte op bestaande C-code en om dat op te lossen heeft PyPy 5.9 verbeteringen ingevoerd in de CFFI-library en in de Python C API-compatibiliteitslaag.

Verder is de JSON-parser stukken sneller geworden met verwerking, vooral met objecten die dezelfde dictionary-termen gebruiken. Je kunt binary's van de PyPy-site downloaden voor verschillende CPU-architecturen en voor Windows, Mac en Linux. Ze zijn verschillend voor Python 2.7 en Python 3.5, dus je moet opletten dat je de versie kiest die bij jouw scripts passen. Hier vind je de broncode en bugtracker.

CFFI

Waar wordt het voor gebruikt?

We hadden het net al even over de C Foreign Function Interface (CFFI), waarmee Python-apps beter interoperabel worden met standalone C-library's. De standaardversie CPtython heeft hier al een library voor, Ctypes, maar CFFI past qua syntaxis en terminologie beter dan Ctypes en geniet daarom bij veel gebruikers de voorkeur.

Features van 1.11

Er zijn kleine verbeteringen in v1.11, die je samen met PyPy bijwerkt, maar ze zijn wel nuttig. Hij werkt nu met bèta's van de aankomende Python-versie 3.7 en kan fouten beter afhandelen op Windows. Er worden meer moderne types toegevoegd, zoals float/double_Complex, char16_t en char32_t. Die laatste twee zijn cruciaal voor C-library's die intern Unicode gebruiken.

Je kunt het downloaden vanaf de Python Package Index of via Pythons tool pip met pip install cffi. De bronocode en de bugtracker vind je op BitBucket.

PyInstaller

Waar wordt het voor gebruikt?

Een van de meestgehoorde vragen over Python is: "Hoe kan ik een standalone executable genereren van een Python-script?" Een van de betere antwoorden is PyInstaller. PyInstaller zorgt ervoor dat alle benodigde onderdelen van een Pyhton-applicatie worden verpakt, samen met third-party library's, in één directory of zelfs een enkele executable. Het werkt met de overgrote meerderheid van veelvoorkomende library's en frameworks.

Features van 3.3

De grootste verbetering is ondersteuning van Python 3.6, wat ontbrak, terwijl de officiële versie al bijna een jaar uit is. PyInstaller 3.3 heeft een bootloader die beter compatibel is met Windows-executables, en uitgebreidere ondersteuning heeft voor het bundelen van library's als QT, GTK+, NumPy en Django.

Een feature die je niet snel zal aantreffen is cross-packaging, oftewel het aanmaken van een Mac-compatibele applicatie als je met Windows werkt. Je zult PyInstaller op hetzelfde platform moeten gebruiken als waar je de uitrol voor plant, dus Windows-apps op Windows, macOS op Mac of Linux op Linux.

PyInstaller kan worden geïnstalleerd vanaf de Python Package Index, of via de pip-tool: pip installer pyinstaller. De broncode staat op GitHub voor mensen die zelf de bootloaders willen compileren, maar voor de meeste gebruikers is dat niet nodig.