Python Virtual Environment Kurulumu
Bir Python projesi kurdun. İkinci projeye geçtin. Birinci proje bozuldu. Tanıdık geldi mi?
Sebep basit: paketleri sistem geneline kuruyorsun. Proje A Django 3 istiyor, proje B Django 5. İkisi aynı klasörde yaşayamaz. Çözüm izole ortam.
Bu rehberde sıfırdan sanal ortam kuracaksın. Sonra paket yönetimini oturtacaksın. Komutları terminale yazarak ilerle; okuyarak öğrenilmiyor.
Sanal Ortam Kurmak: venv ile Temiz Başlangıç
Python 3.3'ten beri venv standart kütüphanenin parçası. Ekstra kurulum yok. En sade yol bu.
İlk ortamı oluştur
Proje klasörüne gir ve şunu çalıştır:
- Linux / macOS: python3 -m venv .venv
- Windows: py -m venv .venv
Klasör adı neden .venv? Çünkü:
- Nokta ile başladığı için listelerde öne çıkmaz.
- VS Code ve PyCharm bu ismi otomatik tanır.
- Ekip içinde standart hâline gelmiştir.
Şimdi aktifleştir:
- Linux / macOS: source .venv/bin/activate
- Windows PowerShell: .venv\Scripts\Activate.ps1
- Windows CMD: .venv\Scripts\activate.bat
Terminalin başında (.venv) yazısını gördüysen tamamdır. Görmediysen aktifleşmemiştir. Kontrol et: which python ya da Windows'ta where python. Çıktı proje klasörünü göstermeli.
PowerShell hata verirse çalıştırma politikası kapalıdır. Bir kereliğine Set-ExecutionPolicy -Scope CurrentUser RemoteSigned komutu bu sorunu çözer. Terminal komutlarıyla aran zayıfsa Linux terminali başlangıç rehberini bir kez okumak işini kolaylaştırır.
Çıkmak için tek kelime yeter: deactivate.
Paketleri kur ve kilitle
Ortam aktifken kurulan her şey o klasörde kalır. Sistemine dokunmaz.
- Önce pip'i güncelle: pip install --upgrade pip
- Paket kur: pip install requests flask
- Listeyi gör: pip list
Şimdi kritik adım. Bağımlılıkları dosyaya yaz:
pip freeze > requirements.txt
Başka bir makinede aynı ortamı kurmak için:
pip install -r requirements.txt
Küçük bir uyarı: pip freeze her şeyi döker. Alt bağımlılıklar da listeye girer. Daha temiz bir yöntem, doğrudan kullandığın paketleri elle yazmak. Sürüm sabitlemeyi de unutma: flask==3.0.0 gibi.
.gitignore ve versiyon kontrolü
.venv klasörünü asla commit etme. Yüzlerce megabayt ve makineye özel yollar içerir.
Proje kökündeki .gitignore dosyasına ekle:
- .venv/
- __pycache__/
- *.pyc
- .env
Repoya sadece requirements.txt gider. Bu dosya tarifin kendisidir; yemek değil. Git tarafında düzenin oturmadıysa Git workflow pratik rehberi iyi bir tamamlayıcı.
venv Yetmediğinde: conda ve Alternatifler
venv çoğu web ve script projesi için fazlasıyla yeterli. Ama bazı durumlarda duvara çarparsın.
conda ne zaman gerekir
venv sadece Python paketlerini yönetir. Python'un kendi sürümünü değiştiremez. conda ikisini de yapar.
| Özellik | venv | conda |
|---|---|---|
| Kurulum | Python'la gelir | Ayrı indirilir |
| Python sürümü seçimi | Hayır | Evet |
| C/Fortran kütüphaneleri | Zor | Kolay |
| Disk kullanımı | Az | Fazla |
| Tipik alan | Web, otomasyon | Veri bilimi, ML |
python venv conda karşılaştırmasında karar kuralı şu:
- Flask, Django, FastAPI, script yazıyorsan → venv
- NumPy, SciPy, GDAL, CUDA'lı PyTorch kuruyorsan → conda
conda ortamı oluşturmak:
- conda create -n projem python=3.11
- conda activate projem
- conda install numpy pandas
- conda env export > environment.yml
İkisini aynı anda aktif tutma. Karışır, hangi pip'in çalıştığını şaşırırsın.
Diğer araçlar
- virtualenv: venv'in atası. Daha hızlı, eski Python sürümlerini destekler.
- pyenv: Aynı makinede birden çok Python sürümü tutar. venv ile birlikte çok iyi çalışır.
- Poetry: Ortam + bağımlılık + paketleme tek araçta. Kilit dosyası üretir.
- uv: Çok hızlı bir kurulum aracı. Mevcut requirements dosyalarıyla uyumlu.
Başlangıçta hepsini deneme. Bir tanesinde ustalaş, sonra genişlet.
Sık yapılan hatalar
- Ortamı aktifleştirmeden pip install: Paket sisteme gider. Kontrol: pip -V çıktısındaki yol.
- sudo pip install: Sanal ortamda root gerekmez. Yazıyorsan bir şey yanlıştır.
- Editörde yanlış yorumlayıcı: VS Code'da komut paletinden "Python: Select Interpreter" ile .venv
© 2026 Yazılım Atölyesi