Blog Yazısı

← Tüm Blog Yazılarına Dön
Yazılım Geliştirme & Python • 9 Kasım 2026 • 6 dk okuma

Python'da 'Dependency Hell' Krizine Son: Virtual Environment (venv) Nedir ve Nasıl Kullanılır?

Farklı projelerin kütüphane sürümleri birbirine girdiğinde yaşanan paket kaosunu bitiren çözüm: Python Sanal Ortamları (venv). Sanal ortam oluşturma, aktif etme, requirements.txt yönetimi ve izolasyon rehberi.

Python öğrenmeye başlayan ve birden fazla proje geliştiren herkesin kaçınılmaz olarak tosladığı meşhur bir duvar vardır: 'Dependency Hell' (Bağımlılık Cehennemi). Örneğin 6 ay önce geliştirdiğiniz eski bir projeniz Django 3.2 sürümüyle çalışırken, bugün başladığınız yeni bir proje Django 5.0 gerektirebilir. Eğer kütüphaneleri bilgisayarınızın genel (global) Python ortamına 'pip install' diyerek kuruyorsanız; yeni projeyi ayağa kaldırdığınız anda eski projeniz patlar, fonksiyonlar çöker ve içinden çıkılmaz bir paket kaosu başlar. İşte bu kabusu ortadan kaldıran en temel Python disiplinine 'Sanal Ortam' (Virtual Environment - venv) diyoruz.

Sanal Ortam (Virtual Environment) Nedir?
Sanal ortam; her projeniz için bilgisayarınızın geri kalanından tamamen yalıtılmış, kendi Python yorumlayıcısını ve kendi kütüphane klasörünü barındıran bağımsız bir kum havuzudur (sandbox). Proje A klasöründeki Python ortamı ile Proje B klasöründeki Python ortamı birbirlerinden tamamen habersizdir. Bir projede Flask 2.0 kullanırken, diğerinde Flask 3.0 kullanabilirsiniz ve hiçbir çakışma yaşanmaz.

Adım Adım Sanal Ortam Kurulumu ve Kullanımı:
Python 3.3 sürümünden bu yana yerleşik olarak gelen venv modülüyle sanal ortam oluşturmak son derece basittir:

1. Proje Klasörüne Gidin ve Sanal Ortamı Oluşturun:
Terminalde projenizin klasörüne girin ve şu komutu çalıştırın:
python -m venv venv
(Bu komut projenizin içine 'venv' adında küçük bir klasör oluşturur; bu klasörün içinde o projeye özel Python ve pip kopyası yer alır).

2. Sanal Ortamı Aktif Hale Getirin (Activate):
- Windows (PowerShell / CMD):
.\venv\Scripts\activate
- Linux / macOS (Terminal):
source venv/bin/activate

Aktifleştiğinde terminal komut satırınızın başında '(venv)' ibaresini görürsünüz. Bu ibare, artık yapacağınız tüm yüklemelerin sadece bu projeye özel izole alana kurulacağı anlamına gelir!

3. Kütüphaneleri Kurun ve requirements.txt ile Dondurun:
Artık sanal ortamınız açıkken güvenle kütüphanelerinizi kurabilirsiniz:
pip install fastapi uvicorn requests

Projenizi GitHub'a yüklerken veya sunucuya taşırken yüzlerce megabaytlık 'venv' klasörünü ASLA kopyalamazsınız! Bunun yerine projenin bağımlılık listesini tek bir metin dosyasına dondurursunuz:
pip freeze > requirements.txt

Bu komut, projenizin ihtiyaç duyduğu tüm kütüphaneleri ve tam sürümlerini bir reçete gibi 'requirements.txt' dosyasına yazar. Başka bir bilgisayara geçtiğinizde sadece şu komutu vermeniz yeterlidir:
pip install -r requirements.txt
Ve tıkır tıkır tüm ortam saniyeler içinde sıfırdan kurulur!

4. Sanal Ortamdan Çıkış (Deactivate):
İşiniz bittiğinde veya başka bir projeye geçmek istediğinizde terminale sadece:
deactivate
yazarak genel işletim sistemi ortamına geri dönebilirsiniz.

Altın Kural: .gitignore Dosyanıza 'venv/' Eklemeyi Asla Unutmayın!
Birçok yeni geliştirici GitHub depolarına yanlışlıkla devasa 'venv' klasörlerini yükler. Oysa venv platforma özel ikili dosyalar içerir; Windows'ta oluşturulan bir venv klasörü Linux sunucuda zaten çalışmaz. GitHub'a sadece kaynak kodlarınızı ve 'requirements.txt' dosyanızı yükleyin. Sanal ortam kullanmayı bir alışkanlık haline getirdiğiniz gün, Python projelerinizin ne kadar düzenli, taşınabilir ve hatasız olduğunu göreceksiniz.

← Diğer Yazılar Fikirlerini Paylaş →