İçeriğe geç

Menü

Berk Akademi
Yorumlar Google yorumları Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Python "pip is not recognized as an internal or external command, operable program or batch file." Hatası Nasıl Çözülür?

pip-is-not-recognized-hatasi-cozumu
Bu yazıda neler var?
  1. Bu hata ne anlama geliyor ve önce neyi kontrol etmelisin?
  2. pip yerine python -m pip: aynı kurulum, iki farklı komut
  3. Sanal ortam (venv) açıkken hangi Python çalışıyor?
  4. pip gerçekten kurulu mu? --version ve ensurepip ile kontrol
  5. PATH ayarı: tek çözüm değil, sıradaki kontrollerden biri
  6. Adım adım kontrol listesi ve takıldığında ne yapmalı?
  7. Sık Sorulan Sorular

Python'da "pip is not recognized as an internal or external command, operable program or batch file." hatasını çözmek için önce pip yerine python -m pip komutunu dene. Windows'ta py -m pip da aynı işi görür. Bunlar da çalışmazsa sırayla sanal ortamın açık olup olmadığına, pip'in kurulu olup olmadığına ve en son PATH ayarına bakarsın. Bu yazı o sırayı adım adım izliyor.

Bu hata ne anlama geliyor ve önce neyi kontrol etmelisin?

Hata, Windows komut isteminin pip adında çalıştırılabilir bir dosyayı baktığı klasörlerde bulamadığını söyler. Python'un bozuk olduğu ya da hiç kurulmadığı anlamına gelmez. Pip büyük ihtimalle yerinde duruyordur, komut istemi ona giden yolu bilmiyordur. Windows'un dili Türkçeyse aynı mesajı Türkçe görebilirsin, anlamı değişmez.

İlk işin, Python'un bu bilgisayarda hangi adla çalıştığını görmek olsun. Komut istemini açıp şu iki komutu dene:

python --version
py --version

İkisi de "Python" ile başlayan bir satır yazdırıyorsa yorumlayıcıya iki adla da ulaşabiliyorsun demektir. py, Windows'ta Python kurulumlarını yönetmek için kullanılan başlatıcıdır. python.org'un Windows belgesine göre py varsayılan olarak python gibi davranır, ayrıca belirli bir sürümü seçmene de izin verir. Her kurulum yöntemi bu komutu eklemeyebilir. py komutunun yanıt vermemesi tek başına bir sorun değildir.

Hangi komutun yanıt verdiğine göre yön belirlersin:

  1. İkisi de çalışıyor: Python'a ulaşabiliyorsun. Sıradaki bölümdeki python -m pip yöntemine geç.
  2. python tanınmıyor, py çalışıyor: Python kurulu ve py onu buluyor. Bu durumda py -m pip komutunu kullan.
  3. python çalışıyor, py tanınmıyor: python -m pip komutunu kullan.
  4. İkisi de tanınmıyor: Komut istemi Python'u da bulamıyor olabilir. Python'u kurduğundan emin ol, komut istemini kapatıp yeniden aç ve iki komutu tekrar dene.

pip yerine python -m pip: aynı kurulum, iki farklı komut

pip yerine python -m pip: aynı kurulum, iki farklı komut

Aşağıdaki örnekte aynı paket üç farklı biçimde kuruluyor. Paket olarak sık kullanılan requests kütüphanesini seçtim:

C:Usersogrenci> pip install requests
'pip' is not recognized as an internal or external command,
operable program or batch file.

C:Usersogrenci> python -m pip install requests

C:Usersogrenci> py -m pip install requests

Beklenen sonuç şöyledir: İlk komut yukarıdaki hata mesajını verir. İkinci ve üçüncü komut paketi indirip kurarken ekrana "Collecting requests" ve "Installing collected packages" gibi satırlar yazdırır, sonunda kurulumun başarılı olduğunu belirtir. Paket zaten kuruluysa "Requirement already satisfied" yazar, bu da normaldir.

Komuttaki parçalar şunları yapar. python ya da py yorumlayıcıyı başlatır. -m, Python'a "şu modülü çalıştır" demektir. Burada çalıştırılan modül pip'in kendisidir. install requests ise pip'e verilen asıl iştir. Yani pip adlı ayrı bir dosyayı aramak yerine Python'u açıp pip'i onun içinden başlatmış olursun. pip'in kendi belgesi de python -m pip komutunun pip'i senin belirttiğin Python yorumlayıcısıyla çalıştırdığını, Windows'ta py -m pip komutunun ise kurulu Python'lar arasından en son sürümü kullandığını anlatır.

Komutun adı değil, pip'i çalıştıran Python yorumlayıcısı önemlidir. Bunu görmek için şu komutu çalıştır:

python -m pip --version

Çıktıda pip'in sürümü, pip'in bulunduğu klasör ve bağlı olduğu Python yorumlayıcısı görünür. Yol satırı site-packages klasörünü içerir. Paketleri nereye kurduğunu bilmek istediğinde bu satıra bakarsın. Aynı bilgisayarda birden fazla Python varsa komutlar farklı yolları yazdırabilir. Sonraki bölümde bu durumun sanal ortamla ilişkisini inceleyeceğiz.

Sanal ortam (venv) açıkken hangi Python çalışıyor?

Sanal ortam, bir projeye ait paketleri sistemdeki genel Python'dan ayrı tutan klasördür. Bu ortamın kendi Python'u ve kendi pip'i vardır. Ortam etkin değilse ya da yanlış yorumlayıcı çalışıyorsa pip hatası bu yüzden çıkabilir. Komutun adı değil, pip'i çalıştıran Python yorumlayıcısı önemlidir.

Ortamı oluşturma ve etkinleştirme

Komut isteminde proje klasörüne geçip ortamı oluştur, ardından Scripts klasöründeki etkinleştirme betiğini çalıştır:

python -m venv venv
venvScriptsactivate.bat

Etkinleştirme başarılı olduysa komut isteminin başında parantez içinde ortam adı görünür, örneğin (venv). Etkinleştirme betiği, ortamın Scripts klasörünü PATH'in başına ekler. Bu sayede python yazdığında ortamın kendi Python'u çalışır.

Hangi Python çalışıyor?

Ortam adını görmen tek başına yeterli kanıt sayılmaz. Yorumlayıcının yolunu iki yolla kontrol edebilirsin:

(venv) C:projelerdeneme> where python
C:projelerdenemevenvScriptspython.exe
C:GenelPythonpython.exe

(venv) C:projelerdeneme> python -c "import sys; print(sys.executable)"
C:projelerdenemevenvScriptspython.exe

where python komutu, PATH'te bulunan eşleşmeleri üstten alta listeler. Komut istemi ilk satırdakini çalıştırır. Yollar bu örnekte genel bir biçimde yazıldı, senin bilgisayarında klasör adları farklı olacaktır.

  • İlk satır ortam klasörünü gösteriyorsa: ortam etkindir ve python -m pip o ortamın pip'ini çalıştırır.
  • Yol venvScripts içermiyorsa: ortam etkin değildir ya da başka bir yorumlayıcı öne geçmiştir. Etkinleştirme komutunu yeniden çalıştır.

Sık yaşanan iki karışıklık

İlki, ortamı oluşturup etkinleştirmeden paket kurmaya çalışmaktır: paket ortama değil, genel Python'a gider. İkincisi, yeni bir komut istemi penceresi açmaktır. Etkinleştirme yalnızca açıldığı pencere için geçerlidir. Yeni pencerede ortam adı görünmüyorsa proje klasörüne geçip betiği yeniden çalıştır.

pip gerçekten kurulu mu? --version ve ensurepip ile kontrol

pip gerçekten kurulu mu? --version ve ensurepip ile kontrol

Doğru yorumlayıcıyı seçtikten sonra pip'in o yorumlayıcıda kurulu olup olmadığına bak:

python -m pip --version

Pip kuruluysa çıktıda pip'in sürüm numarası, pip klasörünün yolu ve Python sürümü tek satırda görünür. Yoldaki klasör, hangi Python'a ait pip'i çalıştırdığını da gösterir.

No module named pip yanıtı gelirse bu yorumlayıcıda pip yok demektir. Python'un standart kitaplığındaki ensurepip modülü pip'i kurmak için hazırdır. Python dokümantasyonuna göre bu modül, pip'i mevcut bir Python kurulumuna ya da sanal ortama kurmak için kullanılır. Gerek, Python kurulurken ya da sanal ortam oluşturulurken pip'in atlandığı ya da sonradan kaldırıldığı durumlarda doğar.

python -m ensurepip
python -m pip --version

İlk komut pip'i kurar, ikincisi kurulumu doğrular. Dağıtıcıdan gelen bazı Python kopyalarında ensurepip bulunmayabilir. Böyle bir durumda Python'u hangi kaynaktan edindiysen onun yönergelerine bakmak gerekir.

ÇıktıAnlamıSonraki adım
pip sürümü ve klasör yolu görünüyorBu yorumlayıcıda pip kuruluPaketi python -m pip install ile kur
No module named pipBu yorumlayıcıda pip yokpython -m ensurepip çalıştır, sonra --version ile tekrar dene
python is not recognizedKomut istemi Python'u bulamıyorpy -m pip --version dene, olmazsa PATH kontrolüne geç

Paket kurulumu çalıştıktan sonra kendi seviyeni görmek istersen ücretsiz Python bilgi testini çözüp hangi konularda pekiştirme yapman gerektiğini görebilirsin.

PATH ayarı: tek çözüm değil, sıradaki kontrollerden biri

PATH, Windows'un bir komutu yazdığında çalıştırılabilir dosyayı hangi klasörlerde arayacağını tutan klasör listesidir. pip yazdığında komut istemi bu listedeki klasörlere bakar ve pip.exe dosyasını bulamazsa hata verir. pip.exe Python'un kurulum klasöründeki Scripts alt klasöründe durur. Bu klasör PATH'te yoksa Python kurulu ve pip çalışır durumda olsa bile doğrudan pip komutu tanınmaz.

Bu yüzden python -m pip ya da py -m pip PATH'e bağımlı değildir. Bu komutlarda Windows önce Python'u bulur, pip'i Python çalıştırır. PATH düzeltmesi, yalnızca kısa pip yazmaya devam etmek isteyenler için bir seçenektir. Önceki bölümlerdeki kontroller sonuç verdiyse bu adıma gerek kalmayabilir.

PATH'i adım adım incele

Önce komut isteminde pip'in nerede olduğuna bak:

where pip

pip bulunursa çıktı <Python klasörü>Scriptspip.exe biçiminde bir yol gösterir. Bu durumda dosya PATH üzerinden bulunuyor demektir ve sorun başka yerdedir, örneğin farklı bir Python ya da etkin ortam. Komut "Could not find files" benzeri bir mesaj verirse pip PATH'te görünmüyordur. Şunları dene:

  1. Başlat menüsünde "ortam değişkenleri" yazıp sistem ortam değişkenlerini düzenleme penceresini aç.
  2. Kullanıcı değişkenlerinde Path satırını seçip Düzenle'ye tıkla.
  3. Listede Python'un kurulum klasörünün ve onun içindeki Scripts klasörünün olup olmadığına bak. Eksikse yeni satır olarak ekleyebilirsin.
  4. Pencereleri Tamam ile kapat, açık komut istemini kapat ve yenisini aç.

Son adım önemlidir: açık bir komut istemi, PATH'in kendi açıldığı andaki hâlini kullanır. Değişiklik ancak yeni açılan pencerede görünür.

Kurulum sihirbazındaki PATH seçeneği

PATH'i elle düzenlemek yerine Python'u yeniden kurmayı da düşünebilirsin. Resmî Windows dokümantasyonuna göre kurulum sihirbazının ilk sayfasında, kurulum konumunu PATH'e ekleyen "Add Python to PATH" etiketli bir seçenek bulunabilir. Seçeneğin adı ve yeri kurulum sürümüne göre değişebilir. Bu yüzden sihirbazı yeniden çalıştırırken PATH ile ilgili kutunun işaretli olup olmadığını kontrol et. Kurulum seçeneği PATH'e yalnızca Python klasörünü değil Scripts klasörünü de eklediğinde, doğrudan pip komutu çalışır.

Terminal kullanımını ve kurulumu baştan, uygulayarak izlemek istersen ücretsiz Sıfırdan Temel Python video eğitimi kendi hızında ilerleyebileceğin bir başlangıç noktası olabilir.

Adım adım kontrol listesi ve takıldığında ne yapmalı?

Hatayı çözmek için aşağıdaki sırayı baştan sona izleyebilirsin. Her adımın sonucu bir sonrakine neye bakacağını söyler.

  1. Python'un çalıştığını doğrula: python --version ya da py --version yaz. Sürüm bilgisi görünüyorsa Python bulunuyor demektir.
  2. pip'i Python üzerinden çağır: py -m pip --version ya da python -m pip --version yaz. Çıktıda pip'in hangi klasörden çalıştığı yazar.
  3. Etkin ortamı ve yorumlayıcı yolunu kontrol et: Komut isteminin başında (venv) gibi bir ortam adı var mı, where python hangi yolu gösteriyor, bak.
  4. pip'i yeniden kur: 2. adım pip bulunamadı derse python -m ensurepip komutunu çalıştır ve ardından 2. adımı tekrarla.
  5. PATH'i incele: where pip ile dosyanın yolunu ara, gerekirse Scripts klasörünü PATH'e ekle.
  6. Komut istemini yeniden aç: PATH değişikliğinden sonra pencereyi kapatıp yeni bir komut istemi aç ve komutları yeniden dene.
  7. Çözülmediyse hata metnini kaydet: Hata mesajının tamamını, çalıştırdığın komutla birlikte kopyala. Yardım isteyeceğin kişi ya da Öğrenim Asistanı için en değerli bilgi budur.

Terminalde takıldığında rastgele komut denemek yerine bu gibi adım adım ilerlemek, sorunun hangi katmanda olduğunu görmeni sağlar. Kurulum ve ortam sorunları, programlamayı öğrenirken sık karşılaşılan engellerdir. Birebir Python özel ders programında bu tür sorunlar, online ya da İzmir'de yüz yüze işlenen ders akışının doğal bir parçası olabilir. Kişiye özel müfredat içinde ilerlerken Öğrenci Portalı'ndaki Öğrenim Asistanı da hazır çözüm vermek yerine adım adım düşünmene yardım eder.

Sık Sorulan Sorular

pip is not recognized hatası python yüklü olduğu hâlde neden çıkıyor?

Python kurulu olsa da pip.exe dosyasının bulunduğu Scripts klasörü PATH'te olmayabilir. Komut istemi de doğrudan pip yazdığında bu dosyayı bulamaz. Etkin bir sanal ortamın farklı bir Python kullanması ya da pip'in kurulmamış olması da aynı mesaja yol açabilir. py -m pip --version bu ihtimalleri ayırt etmenin hızlı yoludur.

python -m pip ile py -m pip arasındaki fark nedir?

İkisi de pip modülünü bir Python yorumlayıcısı ile çalıştırır. Fark, yorumlayıcıyı bulma biçimindedir: python komutu PATH'te bulunan Python'u kullanır. py ise Windows'ta Python ile birlikte gelen başlatıcıdır ve kurulu Python'ları kendisi bulabilir. Bu yüzden PATH eksik olduğunda py sıklıkla yine çalışır.

pip komutunu PATH'e eklemeden paket kurmak mümkün mü?

Evet. python -m pip install paket_adi ya da py -m pip install paket_adi yazarak PATH'e dokunmadan paket kurabilirsin. Bu komutlar pip'i Python üzerinden çağırdığı için Scripts klasörünün PATH'te olması gerekmez.

Komut istemini kapatıp açmadan PATH değişikliği neden çalışmıyor?

Komut istemi açıldığında ortam değişkenlerinin o anki hâlini alır ve çalıştığı sürece bunu kullanır. Sonradan yaptığın PATH değişikliği zaten açık olan pencereye yansımaz. Pencereyi kapatıp yenisini açtığında güncel liste okunur.

Hata mesajı ilk bakışta büyük görünse de çoğu zaman tek bir sorunun, yani Windows'un hangi Python'u ve hangi klasörü kullandığının işaretidir. Kontrolleri sırayla yaptığında nedeni bulmak kolaylaşır.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara