In Python is import hoe je code uit één module in een andere haalt. Het is geen "main import" — die term bestaat niet in Python. Zo werkt het eigenlijk, met de patronen die je dagelijks gebruikt.
import module_naam Dit laadt module_naam en bindt het aan een variabele in jouw huidige namespace. Je benadert de inhoud met puntnotatie:
import math math.sqrt(16) # 4.0 math.pi # 3.14159... import pandas as pd import numpy as np df = pd.DataFrame({'a': [1,2,3]}) arr = np.array([1,2,3]) Voordelen: Expliciet, leesbaar, vermijdt naamconflicten, toont herkomst.
from math import sqrt, pi sqrt(16) # 4.0 — geen prefix nodig pi # 3.14159... Gebruik wanneer: Je gebruikt een paar namen intensief. Vermijd: from module import * (namespace vervuiling).
import matplotlib.pyplot as plt import seaborn as sns Standaard conventies (pd, np, plt, sns, tf, torch) maken code direct leesbaar.
# Importeer zware afhankelijkheden alleen wanneer nodig def analyseer_data(): import pandas as pd # Lokale import — snellere opstart als ongebruikt return pd.read_csv('data.csv') sys.modules — als al geladen, return gecachte modulesys.path (huidige dir, PYTHONPATH, site-packages, stdlib)sys.modulessys.path) import sys sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', # '/home/user/.local/lib/python3.11/site-packages', ...] '' = huidige script directory (of CWD als interactief)pip install pakket → site-packagessite-packages import pakket.submodule from pakket import submodule from pakket.submodule import functie Directory met __init__.py = pakket. __init__.py kan submodules exposeren:
# pakket/__init__.py from .submodule import publieke_functie __all__ = ['publieke_functie'] | Probleem | Oorzaak | Fix |
|---|---|---|
ModuleNotFoundError | Niet geïnstalleerd / verkeerde env / typo | pip install, check venv, check spelling |
ImportError: cannot import name | Circulaire import / naam niet in module | Herschik, verplaats imports in functies |
| Naam conflict | from x import * of lokaal bestand overschaduwt stdlib | Noem bestanden niet math.py, random.py; gebruik expliciete imports |
| Relatieve import error | Module als script draaien | Draai als python -m pakket.module of gebruik absolute imports |