Python Sanal Ortamları: venv ve Bağımlılık Yalıtımı

Python sanal ortamlarında uzmanlaşın. Venv ve pip ile bağımlılıkları güvenli bir şekilde nasıl oluşturacağınızı, etkinleştireceğinizi ve yöneteceğinizi öğrenin.

Editör'de deneyin

Genel Bakış

Birden fazla Python projesi üzerinde çalışırken kaçınılmaz olarak bağımlılık çatışmalarıyla karşılaşacaksınız. A ProjesiDjangosürüm 3.2 gerektirebilirken, Proje BDjangosürüm 5.0 gerektirebilir. Bu paketleri genel olarak yüklerseniz birbirlerinin üzerine yazarak uygulamalarınızdan birini bozarlar. Sanal ortamlar, kendi Python ikili dosyalarını ve kitaplık kurulumlarını içeren yalıtılmış, projeye özel dizinler oluşturarak bu kritik sorunu çözer.

Python, 'venv' modülü aracılığıyla sanal ortamlar için yerleşik destek sağlar. Sanal bir ortam oluşturduğunuzda, Python yorumlayıcısının bir kopyasını ve kabuk ortamınızı ayarlamaya yönelik komut dosyalarını içeren yeni bir klasör oluşturulur. Etkinleştirildiğinde, "pip" kullanarak yüklediğiniz tüm paketler doğrudan bu yalıtılmış klasöre yönlendirilir ve böylece genel Python kurulumunuz temiz ve projeye özel kitaplıklardan etkilenmez.

Sanal ortamları yönetmek üç temel komutu içerir. Öncelikle `python -m venv venv`, `venv` adlı sanal ortam dizinini oluşturur. Daha sonra ortamı etkinleştirirsiniz (macOS/Linux'ta 'source venv/bin/activate' veya Windows'ta 'venv\Scripts\activate'). Son olarak, diğer geliştiricilerin ortamı tam olarak yeniden oluşturmak için kullanabileceği bir liste oluşturarak, 'pip frozen > requires.txt'yi kullanarak bağımlılıklarınızı dondurursunuz. Sanal ortamları anlamak, modern Python mühendisliği için tartışmasız en iyi uygulamadır.

Kod ve Yürütme Çıkışı

Paket gereksinimlerinin oluşturulması, etkinleştirilmesi ve çıktısının alınmasına yönelik komutları gösteren bir model.

venv_management.py
Editör'de deneyin
# This script prints the commands used to configure a virtual environment
commands = [
    "python -m venv my_env       # Create environment",
    "source my_env/bin/activate  # Activate environment (Mac/Linux)",
    "pip install requests        # Install isolated package",
    "pip freeze > requirements.txt # Export dependency catalog"
]

print("--- Virtual Environment Lifecycle ---")
for index, cmd in enumerate(commands, 1):
    print(f"Step {index}: {cmd}")
Terminal Çıkışı
--- Virtual Environment Lifecycle ---
Step 1: python -m venv my_env       # Create environment
Step 2: source my_env/bin/activate  # Activate environment (Mac/Linux)
Step 3: pip install requests        # Install isolated package
Step 4: pip freeze > requirements.txt # Export dependency catalog

Adım Adım Uygulama

  • Bağımlılık çakışmasını önlemek için çalışma alanı projelerini izole etme
  • Docker kapsayıcıları için öngörülebilir ortamları yapılandırma
  • Gereksinimler.txt listeleriyle tekrarlanabilir kod tabanları gönderme

Sıkça Sorulan Sorular

Bir Python projesinde hangi klasörleri görmezden gelmeliyim?

Her zaman sanal ortam dizinini (genellikle 'venv/' veya '.venv/') .gitignore dosyanıza eklemelisiniz. Hiçbir zaman harici kütüphane bağımlılıklarını git'e kontrol etmeyin.

Sanal ortamı nasıl devre dışı bırakırım?

Terminal pencerenize 'devre dışı bırak' komutunu yazmanız yeterlidir; kabuğunuz küresel Python ortamına geri dönecektir.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.