İçeriğe geç

Module not found hatası: neden oluşur ve nasıl düzeltilir

Kolay 10 dk Güncellendi:

Kısa cevap

Module not found hatası, programın yüklemeye çalıştığı modülü veya paketi bulamadığı anlamına gelir. En yaygın nedenler yanlış ad veya yol, modülün yüklenmemiş olması, yanlış çalışma dizini veya uyumsuz ortamdır. Çözüm, içe aktarmayı kontrol etmek, paketi yüklemek ve projeyi doğru klasörden çalıştırmaktır.

Sorun nasıl anlaşılır

  • Python'da `ModuleNotFoundError: No module named 'x'` mesajı
  • Node.js'te `Error: Cannot find module 'x'` mesajı
  • Uygulama başlatıldıktan hemen sonra çöküyor
  • Hata yalnızca başka bir makinede veya CI ortamında ortaya çıkıyor
  • İçe aktarma düzenleyicide çalışıyor ancak terminalden çalışmıyor

En yaygın nedenler

Modül yüklenmemiş

Kodun aradığı paket ortamda mevcut değil. Bu genellikle proje indirildikten sonra `npm install` veya `pip install` çalıştırılmadığında olur.

Yanlış ad veya yol

İçe aktarmada yazım hatası, yanlış göreli yol veya Python paketinde eksik `__init__.py` var. Node.js, `node_modules` içinde tam modül adını arar.

Yanlış çalışma dizini

Komut, proje kökü olmayan bir klasörden çalıştırılıyor, bu nedenle `node_modules` veya sanal ortam görünmüyor. Başlatmadan önce hangi klasörde olduğunuzu kontrol edin.

Uyumsuz ortam

Sanal ortam yerine genel Python veya projenin beklediğinden farklı bir Node.js sürümü kullanıyorsunuz. Bağımlılıklar bu durumda görünmez.

Önbellek veya yükleme sorunları

Kısmen yüklenmiş paket, bozuk `node_modules` veya eski `package-lock.json`, modülün var olmasına rağmen erişilememesine neden olabilir.

Adım adım çözüm

  1. 1

    Hatanın tam modül adını okuyun

    Terminaldeki mesaj, eksik modülün adını belirtir. Bunu not edin ve koddaki içe aktarma satırıyla karşılaştırın. Node.js'te hata genellikle Error: Cannot find module ile, Python'da ise ModuleNotFoundError ile başlar.

  2. 2

    Proje kökünde olup olmadığınızı kontrol edin

    Geçerli klasörü görmek için pwd (macOS/Linux), Windows komut satırında cd veya PowerShell'de Get-Location çalıştırın. Bu klasörde Node.js için package.json veya Python için requirements.txt/pyproject.toml bulunmalıdır. Yoksa cd yol/proje komutuyla doğru klasöre geçin.

  3. 3

    Bağımlılıkları yükleyin

    Node.js için proje kökünde npm install çalıştırın. Python için sanal ortamı etkinleştirin ve pip install -r requirements.txt çalıştırın. Modül hâlâ eksikse tek tek yükleyin: npm install paket-adi veya pip install paket-adi.

  4. 4

    İçe aktarmayı ve yolu kontrol edin

    İçe aktarmanın gerçek paket adına ve klasör yapısına uyduğundan emin olun. Python'da göreli içe aktarmalar modülün nereden çalıştırıldığına bağlıdır; Node.js'te yerel dosyalar için yolun ./ ile başlayıp başlamadığını kontrol edin. Büyük/küçük harf duyarlılığına dikkat edin.

  5. 5

    Önbelleği temizleyin ve yeniden yükleyin

    Modül varsa ancak görünmüyorsa, silmeden önce projenin yedeğini alın veya Git deposuna kaydedildiğinden emin olun. Ardından node_modules ve package-lock.json dosyalarını silin ve npm install komutunu yeniden çalıştırın; package-lock.json silmek bağımlılık sürümlerini değiştirebilir. Python'da __pycache__ klasörlerini silin ve paketi yeniden yükleyin. Bu işlem zaman alabilir.

  6. 6

    Dil sürümünü ve ortamı kontrol edin

    node -v veya python --version çalıştırın ve projenin gereksinimleriyle karşılaştırın. Python'da sanal ortamın etkin olup olmadığını kontrol edin (istem adını gösterir). Node.js'te sürüm değiştirmek gerekirse nvm kullanın.

  7. 7

    İzole olarak test edin

    Yalnızca modülü içe aktaran minimal bir betik oluşturun ve çalıştırın. O zaman da hata veriyorsa sorun yükleme veya ortamdadır, kodun geri kalanında değil. Çalışıyorsa hata yolda veya ana uygulamayı başlatma şeklindedir.

Hiçbir şey işe yaramadığında

Tüm adımları geçtiyseniz ve hata devam ediyorsa, projenin monorepo veya çalışma alanı ayarlarını kullanıp kullanmadığını kontrol edin; bu durumda paketler başka bir klasörde olabilir. Genel bir yüklemenin yerel eksikliği maskeleyip maskelemediğine de bakın. Node.js'te paketin bağımlılık ağacında olup olmadığını görmek için npm ls paket-adi çalıştırın. Python'da pip show paket-adi yükleme konumunu verir. Hata yalnızca CI sisteminde ortaya çıkıyorsa, dil sürümlerini ve yükleme adımlarını yerel ortamla karşılaştırın. Son seçenek olarak yeni bir sanal ortam oluşturun veya projeyi sıfırdan klonlayıp yüklemeyi tekrarlayın.

Tekrarlanmaması için

  • Projeyi indirdikten sonra her zaman `npm install` veya `pip install -r requirements.txt` çalıştırın
  • Bağımlılık sürümlerini kilitleyin (`package-lock.json`, `requirements.txt`) ve depoda tutun
  • Python için sanal ortam, Node.js için `nvm` kullanın
  • Komutları çalıştırmadan önce proje kökünde olduğunuzu kontrol edin

Ne zaman uzmana başvurmalı

Hata karmaşık bir derleme sisteminden, monorepoddan veya CI yapılandırmasından kaynaklanıyorsa ya da tüm adımlara rağmen tekrarlıyorsa, ortamı ve bağımlılıkları birlikte kontrol etmek için BT desteğine başvurun.

Yazılım ve ürün geliştirme · Özel uygulamalar, SaaS ve 4-8 haftada MVP

Sık sorulan sorular

Paket yüklüyken neden Module not found hatası alıyorum?

Genellikle komut, paketin yüklendiği ortamdan farklı bir ortam kullanıyordur. Sanal ortamın etkin olup olmadığını veya doğru proje klasöründe olup olmadığınızı kontrol edin.

node_modules ve package-lock.json dosyalarını silmek güvenli mi?

Genellikle evet, ancak önce projenin yedeğini alın veya Git deposuna kaydedildiğinden emin olun. `package-lock.json` silmek bağımlılık sürümlerini değiştirebilir; silme işleminden sonra bağımlılıkların `package.json` dosyasından yüklenmesi için `npm install` komutunu yeniden çalıştırın.

Hata net değilse hangi modülün eksik olduğunu nasıl anlarım?

Uygulamayı terminalden çalıştırın ve hatanın son satırını okuyun; genellikle modül adı oradadır. Python'da daha ayrıntılı içe aktarma çıktısı için `python -v` çalıştırabilirsiniz.

Paylaş
Çözüm bulamadınız mı?AI BT asistanı 7/24 hizmetinizde. Sorunu anlatın veya hatanın ekran görüntüsünü gönderin, durumunuza özel talimat alın.AI BT asistanına sorun