İki farklı Python projeniz var ve biri bir kütüphanenin eski, diğeri yeni sürümüne ihtiyaç duyuyor. Hepsini tek bir yere kurarsanız çakışırlar. İşte sanal ortamlar tam da bu sorunu çözmek için vardır.
Sorun: bağımlılık çakışması
Kütüphaneleri sisteme global olarak kurduğunuzda tüm projeler aynı sürümleri paylaşır. Bir projeyi güncellemek başka bir projeyi bozabilir. pip ile kurulan paketler büyüdükçe bu karmaşa kaçınılmaz olur.
venv nedir?
Sanal ortam (venv), her proje için ayrı, izole bir Python kurulumu gibidir. O projeye özel kütüphaneler yalnızca o ortamda yaşar ve başka projeleri etkilemez. Oluşturmak tek satırdır:
python -m venv ortamEtkinleştirmek ve kurmak
Ortamı etkinleştirdikten sonra kuracağınız her paket yalnızca oraya gider:
# Windows: ortam\Scripts\activate
# Mac/Linux: source ortam/bin/activate
pip install pandasrequirements.txt ile paylaşmak
Bir projenin ihtiyaç duyduğu tüm paketleri bir requirements.txt dosyasında toplayabilir, böylece projeyi başka bir bilgisayarda birebir kurabilirsiniz. Kavram için bağımlılık cehennemi sayfasına bakabilirsiniz.
İşin hocası ne yapar?
İşin hocası her yeni projeye bir sanal ortamla başlar; çünkü izole edilmiş bir ortam, ileride saatlerce sürecek bağımlılık kâbuslarını baştan önler.
İlgili yazı: Düzenli İfadeler (Regex)
Sıkça Sorulan Sorular
Python’da sanal ortam (venv) nedir?
Sanal ortam, her proje için ayrı ve izole bir Python kurulumu gibidir. O projeye özel kütüphaneler yalnızca o ortamda yaşar ve diğer projeleri etkilemez.
Sanal ortam neden kullanılır?
Farklı projelerin farklı kütüphane sürümlerine ihtiyaç duymasından kaynaklanan çakışmaları önlemek için kullanılır. Bir projeyi güncellemek diğerlerini bozmaz.
requirements.txt ne işe yarar?
Bir projenin ihtiyaç duyduğu tüm paketleri ve sürümleri listeleyen dosyadır. Bu dosya sayesinde proje başka bir bilgisayarda birebir aynı ortamla kurulabilir.
