Kratak odgovor
Greška Module not found znači da program ne može da pronađe modul ili paket koji pokušava da učita. Najčešći uzroci su pogrešno ime ili putanja, modul nije instaliran, pogrešan radni direktorijum ili neusklađeno okruženje. Rešenje je da proverite import, instalirate paket i pokrenete projekat iz ispravnog foldera.
Kako se problem prepoznaje
- Poruka `ModuleNotFoundError: No module named 'x'` u Pythonu
- Poruka `Error: Cannot find module 'x'` u Node.js
- Aplikacija se ruši odmah nakon pokretanja
- Greška se javlja samo na drugoj mašini ili u CI okruženju
- Import radi u editoru, ali ne i iz terminala
Najčešći uzroci
Modul nije instaliran
Paket koji kod traži nije prisutan u okruženju. To se često dešava kada se `npm install` ili `pip install` ne pokrene nakon preuzimanja projekta.
Pogrešno ime ili putanja
Import sadrži grešku u kucanju, pogrešan relativni put ili nedostaje `__init__.py` u Python paketu. Node.js traži tačan naziv modula u `node_modules`.
Pogrešan radni direktorijum
Komanda se izvršava iz foldera koji nije koren projekta, pa se `node_modules` ili virtuelno okruženje ne vide. Proverite u kom ste folderu pre pokretanja.
Neusklađeno okruženje
Koristite globalni Python umesto virtuelnog okruženja ili drugu Node.js verziju od one koju projekat očekuje. Zavisnosti tada nisu vidljive.
Problemi sa kešom ili instalacijom
Delimično instaliran paket, oštećen `node_modules` ili zastareo `package-lock.json` mogu da dovedu do toga da modul postoji, ali nije dostupan.
Rešenje korak po korak
- 1
Pročitajte tačan naziv modula iz greške
Poruka u terminalu navodi ime modula koji nedostaje. Zapišite ga i uporedite sa import linijom u kodu. U Node.js greška obično počinje sa
Error: Cannot find module, a u Pythonu saModuleNotFoundError. - 2
Proverite da li ste u korenu projekta
Pokrenite
pwd(macOS/Linux),cdu Windows komandnoj liniji iliGet-Locationu PowerShell-u da vidite trenutni folder. U njemu treba da postojepackage.jsonza Node.js ilirequirements.txt/pyproject.tomlza Python. Ako ne postoje, pređite u pravi folder komandomcd putanja/do/projekta. - 3
Instalirajte zavisnosti
Za Node.js pokrenite
npm installu korenu projekta. Za Python aktivirajte virtuelno okruženje pa pokrenitepip install -r requirements.txt. Ako modul i dalje nedostaje, instalirajte ga pojedinačno:npm install ime-paketailipip install ime-paketa. - 4
Proverite import i putanju
Uverite se da import odgovara stvarnom nazivu paketa i strukturi foldera. U Pythonu relativni importi zavise od toga odakle se modul pokreće; u Node.js proverite da li putanja počinje sa
./za lokalne fajlove. Obratite pažnju na velika i mala slova. - 5
Očistite keš i ponovo instalirajte
Ako modul postoji ali se ne vidi, pre brisanja napravite rezervnu kopiju projekta ili proverite da je sačuvan u Git repozitorijumu. Zatim obrišite
node_modulesipackage-lock.jsonpa ponovo pokrenitenpm install; brisanjepackage-lock.jsonmože da promeni verzije zavisnosti. U Pythonu obrišite__pycache__foldere i ponovo instalirajte paket. Postupak može potrajati. - 6
Proverite verziju jezika i okruženje
Pokrenite
node -vilipython --versioni uporedite sa zahtevima projekta. U Pythonu proverite da li je aktivirano virtuelno okruženje (prompt prikazuje njegovo ime). U Node.js koristitenvmako je potrebno prebacivanje verzije. - 7
Testirajte izolovano
Napravite minimalnu skriptu koja samo uvozi modul i pokrenite je. Ako i tada puca, problem je u instalaciji ili okruženju, a ne u ostatku koda. Ako radi, greška je u putanji ili načinu pokretanja glavne aplikacije.
Kada ništa ne pomogne
Ako ste prošli sve korake i greška ostaje, proverite da li projekat koristi monorepo ili workspace podešavanja, gde se paketi nalaze u drugom folderu. Pogledajte i da li je u pitanju globalna instalacija koja maskira nedostatak lokalne. U Node.js pokrenite npm ls ime-paketa da vidite da li je paket uopšte prisutan u stablu zavisnosti. U Pythonu pip show ime-paketa daje lokaciju instalacije. Ako se greška javlja samo u CI sistemu, uporedite verzije jezika i korake instalacije sa lokalnim okruženjem. Kao poslednju opciju, napravite novo virtuelno okruženje ili svež klon projekta i ponovite instalaciju.
Kako da sprečite da se ponovi
- Uvek pokrećite `npm install` ili `pip install -r requirements.txt` nakon preuzimanja projekta
- Zaključajte verzije zavisnosti (`package-lock.json`, `requirements.txt`) i držite ih u repozitorijumu
- Koristite virtuelno okruženje za Python i `nvm` za Node.js
- Proverite da li ste u korenu projekta pre pokretanja komandi
Kada je bolje pozvati stručnjaka
Ako greška potiče iz složenog build sistema, monorepa ili CI konfiguracije, ili se ponavlja uprkos svim koracima, obratite se IT podršci da zajedno proverite okruženje i zavisnosti.
Razvoj softvera i proizvoda · Aplikacije po meri, SaaS i MVP za 4 do 8 nedeljaČesta pitanja
Zašto mi se javlja Module not found kada je paket instaliran?
Najčešće zato što komanda koristi drugo okruženje od onog u koje je paket instaliran. Proverite da li je virtuelno okruženje aktivno ili da li ste u pravom folderu projekta.
Da li je bezbedno obrisati node_modules i package-lock.json?
Uobičajeno jeste, ali prvo napravite rezervnu kopiju projekta ili proverite da je sačuvan u Git repozitorijumu. Brisanje `package-lock.json` može da promeni verzije zavisnosti; nakon brisanja ponovo pokrenite `npm install` da se zavisnosti instaliraju iz `package.json`.
Kako da znam koji modul nedostaje ako greška nije jasna?
Pokrenite aplikaciju iz terminala i pročitajte poslednju liniju greške; tu je obično naziv modula. U Pythonu možete pokrenuti `python -v` za detaljniji ispis uvoza.