wat is een python package

Weten hoe je met packages omgaat is een belangrijke vaardigheid voor iedereen die iedereen die met Python werkt. Maar net als programmeren in de taal zelf, is ook de omgang met packages relatief eenvoudig te begrijpen.

Ook interessant: Een volledig overzicht van handige Python Packages

Naarmate je grotere en complexere programma’s maakt groeit de behoefte voor een duidelijke structuur. Het laatste wat je dan wil is dat al je code in een enkel bestand staat. Hiermee is het namelijk bijna onmogelijk om iets terug te vinden.

Idealiter verdeel je je code onder in verschillende bestanden die elk gerelateerde functionaliteit bevatten. Deze losse scripts met specifieke functionaliteiten worden in Python modules genoemd. Een groep aan elkaar gerelateerde modules kunnen in Python gegroepeerd worden tot een package.

Binnen Python maak je gebruik van modules en packages om je code onder te verdelen in nette efficiënte componenten. Je kunt zelf modules en packages maken, maar je kunt ook ze ook downloaden en importeren van een derde partij. 

In dit blog leer je meer over

  • Wat zijn modules?
  • Packages
    • Wat is de structuur van een Python package?
    • Hoe importeer je uit een Python package?
    • Welke standaard modules en packages zijn er en hoe gebruik ik die?
    • Hoe installeer je een package?
Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.

Wat zijn modules?

Om te begrijpen wat een package is zullen we eerst uitleggen wat een module is. Binnen programmeren is een module een stuk code met een specifieke functionaliteit. Modules worden gebruikt om grote programma’s in korte, beheersbare delen op te splitsen. Tevens kun je met modules stukken code hergebruiken. Het is beter om veelgebruikte stukken code als module op te slaan en daar waar nodig te importeren, dan om de stukken code overal waar nodig over te kopiëren.

Wanneer we als voorbeeld een script example_module.py aanmaken met hierin de volgende code:

def add(x, y):
z = x + y
return z

Dan hebben we hiermee een module gemaakt. In deze module bevindt zich een functie add() die twee Python variables x en y optelt.

Nu kun je deze module importeren en gebruiken vanuit een ander Python script. Doe dit als volgt:

import example_module
example_module.add(2,4)

Er zijn meerdere manieren om functionaliteiten uit een module te importeren en te gebruiken.
import module
Hiermee importeer je alle functies uit de module en gebruik je ze door module_naam.functie_naam aan te roepen, zoals in het voorbeeld (example_module.add).

from module import *

Met deze import vorm worden alle functionaliteiten geïmporteerd, behalve zij die beginnen met een underscore (_).

from module import function_1, function_2

Gebruik dit als je slechts specifieke functionaliteiten wilt gebruiken.

from example_module import add as custom_add

Wanneer een naam van een te importeren functie uit een module conflicterend is met een al gebruikte naam, dan kun je een te importeren functienaam wijzigen.

Packages

Een Python package is een verzameling van modules en eventueel sub-packages. Door in modules en sub-packages specifieke gerelateerde functionaliteiten afzonderlijk op te slaan en te groeperen in een package ontstaat een gestructureerde verzameling code.

Een package bestaat altijd uit een mappenstructuur en een bestand __init__.py. Het __init__.py bestand is nodig zodat Python herkent dat het een package is. Een subpackage moet hierdoor ook altijd een __init__.py bestand bevatten. Het __init__.py bestand mag leeg zijn, maar bevat vaak de code die gebruikt wordt voor het initialiseren van de package.

Structuur van een package

Onderstaande afbeelding verduidelijkt de structuur van bestanden en mappen in een Python package.

python package structuur

In de hoofdmap staan de modules van de package. In de submappen de modules van sub-packages. Elke package is herkenbaar aan het __init__.py bestand.

Uit een package importeren

Wanneer je uit bovenstaand voorbeeld specifiek module_1 uit sub-package sub-package_1 wilt importeren, dan kun je dit als volgt doen.

import package.sub_package_1.module_1

Stel deze module bevat een functie add(x, y), dan is deze functie nu als volgt te gebruiken:

package.sub_package_1.module_1.add(x, y)

Deze constructie kan ook compacter, door de module eerst als volgt te importeren:

from package.sub_package_1 import module_1

Waarna de functie add(x, y) uit deze module als volgt aan te roepen is:

module_1.add(x, y)

Ook kan de functie rechtstreeks geïmporteerd worden:

from package.sub_package_1.module_1 import add

En is nu te gebruiken met:

add(x, y)

Let op dat functies uit verschillende modules en packages dezelfde namen kunnen hebben, houd hier rekening bij met de manier hoe je importeert.

Standaard Python modules  en packages gebruiken

Python bevat vanuit de standaard installatie enkele modules en packages die je kunt gebruiken. Een voorbeeld hiervan is Math, wat wiskundige functies bevat.

Je importeert dit package met de volgende code:

import math

Vervolgens kun je alle functies uit de module gebruiken. Kijk voor een totaaloverzicht op de volgende link: https://docs.python.org/3/library/math.html.

Zo kunnen we met de functie ceil van een decimaal getal een naar boven afgeronde integer verkrijgen.

math.ceil(2.3)

Naast Math zijn er vele andere packages en modules die vanuit de standaard Python installatie te gebruiken zijn. Kijk voor een totaaloverzicht op Kijk voor een totaaloverzicht op de volgende link: https://docs.python.org/3/library/.

Packages installeren en gebruiken

Er zijn veel packages die te downloaden zijn waarmee je snel goede functionaliteit toe kunt voegen aan je scripts. Een voorbeeld hiervan is Matplotlib, een packages om grafieken te maken. 

Je kunt Matplotlib installeren door in de command prompt het commando pip install matplotlib uit te voeren.

python package installeren

Een veel gebruikte module uit package Matplotlib is Pyplot. Deze module wordt veelal als volgt geïmporteerd:

import matplotlib.pyplot as plt

Nu kun je alle functies uit deze module gebruiken. In onderstaand voorbeeld maken we een simpele grafiek.

plt.plot([1, 3, 4, 4.5])
plt.show()

Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.

Samenvatting

Naast Matplotlib zijn er vele andere handige packages. Eerder stelden we een volledig overzicht op van Python Packages die handig zijn voor Data Science.

Naarmate je projecten en scripts groter worden heb je steeds meer behoefte voor een goede structuur. Dit doe je door modules en of packages te gebruiken. Hiermee groepeer je functionaliteiten zodat je ze op een gemakkelijke manier terug kunt vinden en kunt hergebruiken.

Een module is een Python script met hierin specifieke functies. Je kunt de module importeren en vervolgens kun je de functies uit de package gebruiken.

Een package is een verzameling van modules en/of sub-packages. Hierin geef je structuur aan modules en/of sub-packages die aan elkaar gerelateerd zijn. Net als van een individuele module kun je een package, of bepaalde elementen eruit, importeren en de functies gebruiken. Een package moet altijd een __init__.py bestand bevatten zodat Python het herkent als een package.

Met de kennis die je nu hebt van modules en packages ben je in staat modules en packages te downloaden en importeren. Je kunt functies uit modules en packages gebruiken in je eigen scripts. Ook weet je nu hoe je zelf een module en een package kan maken om nog meer structuur in je eigen projecten aan te brengen.

Wil je nog veel meer leren over de mogelijkheden van Python en samenwerken met andere geïnteresseerden en goede trainers? Schrijf je dan in voor onze Python cursus voor data science en vergroot je vaardigheden gecombineerd met mooie voorbeelden en praktijkcases.

by: