Modul je jeden soubor .py; balíček je adresář modulů. Importy vám umožňují používat kód z jiných modulů, organizují program do znovupoužitelných částí.
Moduly a importování
(): a + b
PI =
# main.py — different ways to import
import math_utils # import the whole module
math_utils.add(2, 3) # access via the module name
from math_utils import add, PI # import specific names
add(2, 3) # use directly
from math_utils import add as plus # import with an alias
import numpy as np # common aliasing convention
mypackage/
__init__.py ← marks it as a package (can be empty)
module_a.py
subpackage/
__init__.py
module_b.py
from mypackage.module_a import something
from mypackage.subpackage.module_b import other
Soubor __init__.py označuje adresář jako balíček (a může spustit inicializační kód balíčku nebo definovat, co from package import * odhaluje).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Umožňuje souboru fungovat jako importovatelný modul i spustitelný skript — kód pod ním se spouští pouze tehdy, když je soubor spuštěn přímo (python file.py), ne když je importován. Téměř univerzální idiom Pythonu.
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
Moduly a balíčky jsou způsob, jak organizovat kód Pythonu do znovupoužitelných, udržovatelných jednotek namísto jednoho gigantického souboru — zásadní pro jakýkoli netriviální projekt.
Rozmínění stylů importu, struktury balíčku (__init__.py), idimu if __name__ == "__main__" (duální chování skriptu/modulu) a toho, jak Python nachází moduly (sys.path), je nezbytné pro strukturování projektů, znovupoužívání kódu a používání obrovské standardní knihovny a ekosystému PyPI.
Chyby importu a zmatek ve struktuře jsou časté počáteční překážky, které tyto znalosti odstraňují.