Kısa cevap
pip ve venv hataları en sık pip'in paketleri yanlış yorumlayıcıya kurması, sanal ortamın etkinleştirilmemesi veya sistem ve kullanıcı paketlerinin karışması durumunda ortaya çıkar. Çözüm, yeni bir venv ortamı oluşturup etkinleştirmek ve paketleri bu ortamın içine kurmak, ayrıca pip ve python komutlarının aynı yeri gösterdiğini doğrulamaktır.
Sorun nasıl anlaşılır
- pip install Permission denied veya externally-managed-environment hatası veriyor
- Paket kurulu olmasına rağmen modül bulunamıyor
- python ve python3 komutları farklı sürümler gösteriyor
- venv etkinleşmiyor veya terminal kapatıldıktan sonra etkinleştirme kayboluyor
- pip list bu ortamda kurmadığınız paketleri gösteriyor
En yaygın nedenler
Yanlış yorumlayıcı
python komutu bir yorumlayıcıyı, pip ise başka birini gösteriyor. Paketler uygulamanın göremediği yere kuruluyor.
Venv etkinleştirilmemiş
Terminal sistem ortamında kalmış, bu yüzden pip sanal ortam yerine global olarak kurulum yapıyor.
Sistem paketleri ve PEP 668
Yeni Linux dağıtımları PEP 668 uyarınca global pip kurulumlarını engeller; `--break-system-packages` yerine venv veya `pipx` kullanın.
Kullanıcı ve sistem kurulumlarının karışması
--user ile veya sistem paket yöneticisi üzerinden kurulan paketler venv ortamındakileri gölgeleyebilir.
Bozuk veya kısmen kurulmuş paket
Yarıda kalan kurulum veya önbellekteki hatalı wheel, içe aktarma ya da güncelleme sırasında hatalara yol açar.
Adım adım çözüm
- 1
Hangi yorumlayıcıyı ve pip'i kullandığınızı kontrol edin
Terminalde
python --version,python3 --version,pip --versionvewhich python(Windows'tawhere python) komutlarını çalıştırın. Yolları karşılaştırın: pip yorumlayıcıdan farklı bir dizini gösteriyorsa hataların çoğunun nedeni budur. Gerekirsepython -m pip --versionile belirli yorumlayıcıya bağlı pip'i görün. - 2
Yeni bir sanal ortam oluşturun
Projenin kök dizininden
python -m venv .venvkomutunu çalıştırın (Linux ve macOS'ta gerekirsepython3 -m venv .venv). Windows'ta Python launcher kuruluysapy -m venv .venvkullanın..venvadı bir gelenektir ve tanımayı kolaylaştırır; proje yolunda boşluklardan kaçının. - 3
Venv'i etkinleştirin ve yolları doğrulayın
Windows'ta (PowerShell)
.venv\Scripts\Activate.ps1, Komut İstemi'nde.venv\Scripts\activate.bat, macOS ve Linux'tasource .venv/bin/activateçalıştırın. Etkinleştirmeden sonra istem(.venv)göstermelidir.which pythonvewhich pip(Windows'tawhere pythonvewhere pip) ile her ikisinin de.venviçinde olduğunu doğrulayın. - 4
Ortam içinde pip'i güncelleyin
Venv etkinken
python -m pip install --upgrade pip setuptools wheelçalıştırın. Böylece modern paketlerin kurulumunda ortaya çıkan eski pip hatalarından kaçınırsınız.sudo pipveya global pip kullanmayın. - 5
Paketleri kurun ve bağımlılıkları kaydedin
python -m pip install paket-adiile kurun.requirements.txtvarsapython -m pip install -r requirements.txtkullanın. Başarılı kurulumdan sonrapython -m pip freeze > requirements.txtile durumu kaydedin, böylece ortam yeniden üretilebilir olur;requirements.txtzaten varsa dosya üzerine yazılacağı için önce yedek alın. - 6
Önbelleği temizleyin ve sorunlu paketi yeniden kurun
Kurulum başarısız olursa
python -m pip cache purgeçalıştırıp kurulumu tekrarlayın. İnatçı durumlar içinpython -m pip install --force-reinstall paket-adikullanın. Paketin platformunuz ve Python sürümünüz için wheel'i olup olmadığını kontrol edin. - 7
externally-managed-environment hatasını çözün
Yeni Linux dağıtımlarında global pip engellenmiştir. Çözüm
--break-system-packageskullanmak değil, venv ortamı içinde çalışmaktır. Sistem aracı gerekiyorsa pip yerine dağıtımın paket yöneticisiyle (ör.apt) kurun. - 8
IDE'nin aynı ortamı kullandığını doğrulayın
VS Code'da Komut Paleti'ni (
Ctrl+Shift+P, macOS'taCmd+Shift+P) açıpPython: Select Interpreterseçin ve.venvişaretleyin. PyCharm'daSettings > Project: <proje-adi> > Python Interpreterbölümünü kontrol edin. IDE terminalden farklı bir yorumlayıcı kullanarakModuleNotFoundErrorhatasına neden olabilir.
Hiçbir şey işe yaramazsa: izolasyon ve tanılama
Tamamen yeni bir dizin, yeni bir venv ortamı oluşturun ve yalnızca sorun çıkaran paketi kurun. Burada çalışıyorsa neden başka bir paketle çakışma veya eski bir requirements.txt dosyasıdır. Uyumsuz bağımlılıkları bulmak için python -m pip check, eskimiş olanları görmek için python -m pip list --outdated kullanın. Hatayı yeniden üretmek için Python'u -v veya -X importtime ile çalıştırarak modülün nereden yüklendiğini görün. Birden çok Python sürümü kullanıyorsanız sürümü açıkça seçmek için pyenv (macOS/Linux) veya py launcher (Windows) düşünün. Sorunu geçici olarak aşmak için paketleri global kurmayın, çünkü sonraki projede sorun geri döner.
Tekrarlanmaması için
- Her proje için her zaman venv kullanın ve paketleri asla global kurmayın.
- Bağımlılıkları requirements.txt içinde kaydedin ve sürümleri sabitleyin.
- IDE ve terminalin aynı yorumlayıcıyı kullandığını doğrulayın.
- sudo pip ve --break-system-packages kullanmaktan kaçının.
Ne zaman uzmana başvurmalı
Hatalar sistem Python kurulumlarından, çakışan sürümlerden veya kısıtlı yetkilere sahip kurumsal ortamdan kaynaklanıyorsa, ortamı güvenli şekilde izole etmek ve mevcut araçları korumak için IT desteğini arayın.
Yazılım ve ürün geliştirme · Özel uygulamalar, SaaS ve 4-8 haftada MVPSık sorulan sorular
pip paketin zaten kurulu olduğunu söylüyor ama Python görmüyor, neden?
Büyük olasılıkla paketi başka bir yorumlayıcıya veya global ortama kurdunuz. `which python` ve `which pip` (Windows'ta `where python` ve `where pip`) ile yolları kontrol edin ve aynı venv ortamında olduklarından emin olun.
venv ve global paketleri birlikte kullanabilir miyim?
Kullanabilirsiniz ancak yeniden üretimi zorlaştırdığı için önerilmez. Her yerde erişilebilir bir araca ihtiyacınız varsa sistem paket yöneticisiyle kurun veya izole CLI araçları için `pipx` kullanın.
externally-managed-environment hatası ne anlama geliyor?
Yeni Linux dağıtımlarının pip'in sistem paketlerini değiştirmesini önlemek için getirdiği bir korumadır. Çözüm `--break-system-packages` bayrağıyla atlatmak değil, venv ortamı içinde çalışmaktır.