✦ Srednji nivo Pythona i OOP Lokalni Python projekat

L2 · Koncept 03 · Moduli, paketi i okruženja

Jedan modul je koristan.
Paket drži projekat na okupu.

Kada projekat ima više povezanih Python fajlova, paket ih održava organizovanim. Naučićeš kako da napraviš paket, koristiš __init__.py i uvezeš kod iz njegovih modula.

Cilj učenjaOrganizuj povezane Python module u paket, napravi __init__.py i objasni svaki deo importa kao što je from alati.kalkulator import saberi.
01 Uči02 Radi lokalno03 Proveri razumevanje

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Modul je jedan fajl. Paket organizuje povezane module.

Modul je jedan .py fajl, kao kalkulator.py. Paket je folder koji grupiše povezane module. Zamisli modul kao jednu alatku, a paket kao kutiju koja drži povezane alatke zajedno.

alati/
├── __init__.py
├── kalkulator.py
└── konverter.py

Paket pomaže da veći projekat ostane pregledan. Ovde je alati paket, a dva .py fajla u njemu su moduli.

U prethodnoj lekciji povezani fajlovi mogli su da stoje pored main.py. To u početku radi, ali glavni folder postaje pretrpan kako projekat raste.

↳

Jasan obrazac za učenje: __init__.py je Python fajl unutar foldera paketa. Može biti prazan. U ovom kursu ga koristimo za klasičan Python paket, jer je to jasan način da označimo i organizujemo paket. Moderni Python podržava i neke pakete bez njega, ali taj obrazac nam još nije potreban.

Pre: povezani moduli u glavnom folderu
moj_projekat/
├── main.py
├── kalkulator.py
└── konverter.py

Ovo može da radi, ali više fajlova brzo otežava pregled glavnog foldera.

Posle: grupiši povezane module u paket
moj_projekat/
├── main.py
└── alati/
    ├── __init__.py
    ├── kalkulator.py
    └── konverter.py

Sada povezani moduli žive zajedno u paketu alati, dok main.py ostaje lako uočljiv.

Dva korisna stila importa
from alati import kalkulator
print(kalkulator.saberi(5, 3))

from alati.kalkulator import saberi
print(saberi(5, 3))

# Avoid: from alati.kalkulator import *

Prvi stil uvozi modul, zato poziv zadržava kalkulator.. Drugi uvozi jednu funkciju direktno. Izbegavaj import * jer sakriva odakle nazivi dolaze.

Pročitaj import iz paketa

  1. 1. Počni od paketaU from alati.kalkulator import saberi, alati je folder paketa.
  2. 2. Navedi modulkalkulator je fajl modula unutar tog paketa.
  3. 3. Uvezi ono što ti trebasaberi je funkcija uvezena iz modula, zato možeš da pozoveš saberi(...) u main.py.

Python ne pronalazi moj paket

  • Pokrenuo si pogrešan fajlOtvori folder projekta i odatle pokreni odgovarajući main.py.
  • Naziv se ne podudaraProveri naziv foldera, naziv fajla i svaki deo importa da nema slovne greške.
  • Fajlu nedostaje .pyProveri da fajlovi modula zaista završavaju sa .py i da za primer iz ovog kursa postoji __init__.py.
  • Folder projekta je drugiProveri da radiš u projektu koji sadrži main.py i folder alati.

Napravi svoj prvi Python paket

Radi ovo u VS Code-u

Nastavljamo lokalno u VS Code-u — setup iz prethodne lekcije je dovoljan. Napravi i sačuvaj ove fajlove u jednom folderu projekta pre nego što pokreneš main.py.

Primer paketa
moj_projekat/
├── main.py
└── alati/
    ├── __init__.py
    ├── kalkulator.py
    └── konverter.py

Folder alati je paket. On drži dva povezana modula zajedno.

Napravi paket korak po korak

  1. Napravi folder alati i __init__.pyUnutar moj_projekat napravi folder alati. U njemu napravi __init__.py; može ostati prazan.
  2. Napravi kalkulator.pyDodaj dve povezane funkcije, pa sačuvaj fajl.
    def saberi(a, b):
        return a + b
    
    
    def oduzmi(a, b):
        return a - b
  3. Napravi konverter.pyDodaj funkciju za konverziju, pa sačuvaj fajl.
    def celsius_u_fahrenheit(celsius):
        return celsius * 9 / 5 + 32
  4. Koristi paket iz main.pyalati je paket, kalkulator je modul, a saberi je funkcija.
    from alati.kalkulator import saberi
    from alati.konverter import celsius_u_fahrenheit
    
    print(saberi(5, 3))
    print(celsius_u_fahrenheit(20))
↳

Pokreni lokalno: python main.py Ako tvoj računar koristi python3, pokreni python3 main.py. Očekivani prvi rezultati su 8 i 68.0.

Proveri pre nego što pitaš Slobyja za pomoć

  • Sačuvaj svaki fajlSačuvaj main.py, __init__.py i oba modula pre pokretanja main.py.
  • Proveri putanju paketaFolder alati mora biti pored main.py, a kalkulator.py mora biti unutar alati.
↳

Sledeće: Virtuelna okruženja. Sada umeš da organizuješ svoj kod. Sledeće ćeš organizovati Python biblioteke koje pripadaju jednom određenom projektu.

Koji import omogućava da u main.py pozovemo funkciju direktno kao saberi(2, 3)?

Projekat ima paket alati sa kalkulator.py, a taj modul definiše saberi(a, b).

moj_projekat/
├── main.py
└── alati/
    ├── __init__.py
    └── kalkulator.py
Izaberi izlaz

Radi samostalno u VS Code-u

Napravi paket moji_alati

Ovaj izazov radiš lokalno. Napravi paket samostalno, a zatim posle pokušaja koristi Check My Code za mentorski feedback.

Vaš ciljNapravi moji_alati sa __init__.py, brojevi.py i poruke.py. U brojevi.py napravi funkciju koja vraća da li je broj paran. U poruke.py napravi funkciju koja prima ime i vraća pozdrav. U main.py uvezi i upotrebi obe funkcije.
moj_paket/
├── main.py
└── moji_alati/
    ├── __init__.py
    ├── brojevi.py
    └── poruke.py

Radi u svom lokalnom VS Code folderu

Nagoveštaji korak po korak
  • Najpre napravi folder paketa i njegova tri fajla.
  • Broj je paran kada je ostatak pri deljenju sa 2 jednak 0.
  • Uvezi svaku funkciju iz njenog modula, na primer sa from moji_alati.brojevi import ....

Nakon sopstvenog pokušaja koristi Check My Code na aktivnom Python fajlu, potvrdi slanje koda i pročitaj Slobyjev mentorski feedback. Sloby ne pokreće niti menja tvoj kod.

Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.