import / from … import în Python

Module și importuri Python 3.0+

Încarcă un modul (din biblioteca standard, instalat sau scris de tine) ca să îi folosești funcțiile.

Sintaxă
import modul
import modul as alias
from modul import nume1, nume2

Ce face import / from ... import

Codul Python este împărțit în module: fișiere .py cu funcții, clase și constante. import math încarcă modulul, iar funcțiile lui se folosesc cu prefixul modulului: math.sqrt(16).

from math import sqrt aduce doar numele cerut, folosit apoi fără prefix. as dă un nume mai scurt: import datetime as dt. Evită from modul import *: nu se mai vede de unde vin numele și pot apărea conflicte.

Un modul este încărcat o singură dată per program, oricâte import-uri ai scrie. Codul de la nivelul de sus al unui fișier pe care vrei să-l rulezi doar direct, nu și la import, se pune sub if __name__ == "__main__":. Pachetele externe se instalează cu pip install nume.

Exemple

Exemplul 1: Cele trei forme

import math
from random import choice, seed
import datetime as dt

print(math.sqrt(81))
seed(3)
print(choice(["Iași", "Cluj", "Brașov"]))
print(dt.date(2026, 10, 19).strftime("%d.%m.%Y"))

Rezultat

9.0
Iași
19.10.2026

Exemplul 2: Ce conține un modul

import string
publice = [nume for nume in dir(string) if not nume.startswith("_")]
print(publice[:6])
print(string.digits)

Rezultat

['Formatter', 'Template', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords']
0123456789

Exemplul 3: if __name__ == „__main__”

Când fișierul este rulat direct, __name__ are valoarea "__main__". Când este importat, __name__ este numele modulului, iar blocul nu rulează.

def aduna(a, b):
    return a + b

if __name__ == "__main__":
    print("Rulez direct:", aduna(2, 3))

Rezultat

Rulez direct: 5

Greșeli frecvente

  • Îți numești fișierul la fel ca un modul standard (random.py, json.py). import random încarcă fișierul tău, nu modulul Python, și primești erori ciudate.
  • Primești ModuleNotFoundError: No module named 'requests'. Pachetul nu este instalat în mediul Python pe care îl folosești; rulează python3 -m pip install requests.

Comenzi înrudite

  • dir(): Listează numele (atribute și metode) disponibile într-un obiect sau modul.
  • sys.path: Lista directoarelor în care Python caută modulele la import.
  • def: Definește o funcție: un bloc de cod cu nume, pe care îl poți apela de oricâte ori.