Sanal Ortamlar (venv): Python Proje Bağımlılıklarını İzole Etmek

İ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 ortam

Etkinleş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 pandas

requirements.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.

Yorum yapın