Python Virtual Environment(Sanal Ortam)

Virtual Environment Nedir?

Virtual Environment, farklı projelerin gerektirdiği modül bağımlılıklarını, onlar için izole edilmiş python sanal ortamları oluşturarak ayrı tutmaya yardımcı olan bir araçtır. Bu, çok Python geliştiricisinin kullandığı en önemli araçlardan biridir.

Virtual Environment Ne Zaman ve Neden Kullanılır?

Python modüllerini yüklemek istediğimizde varsayılan olarak sistemimizdeki var olan python path’i içerisine kurulumu gerçekleştirir. Ancak birden fazla projede ve aynı modülün farklı bir sürümünde çalışmak isterseniz bu kurduğunuz modüller içerisinde ya kayboluyorsunuz yada çakışmalar gerçeklerşiyor. Veya açık kaynakda araştırdığınız bir projenin kurulumunu yapacaksınız, ancak bu projenin modüllerinin sizin var olan projelerinizide etkileyeceği durumlarda çakışma ve yönetilebilirliği sağlamak amacıyla virtual environment’i kullanılır.

Virtual Environment Nasıl Çalışır?(venv)

İzole Python ortamları oluşturmak için bir araç olan venv adlı bir modül kullanıyoruz . venv, bir Python projesinin ihtiyaç duyacağı paketleri kullanmak için gerekli tüm yürütülebilir dosyaları içeren bir klasör oluşturur.

Virtual Environment Oluşturma ve Aktifleştirme.

Sanal ortam oluşturmak tek satır kod ile yapılan bir işlemdir, tek yapmanız gereken istediğiniz dizine gidip

python -m venv <klasör_adı>

komutlarını yazmak olacak.

test klasörü

Görüldüğü gibi komut çalıştırıldıktan sonra varsayılan python sürümünde bir sanal ortamımızı çalıştırmamız için gereken dosyalar oluşturuldu. Şimdide bu sanal ortamı aktif edelim. Sanal ortam klasörü içerisideyken

Scripts\activate.bat

yazarak sanal ortamı aktif etmiş oluruz.

sanal ortamı aktifleştime

Aktif olan ortamı kontrol etmek için komut satırında dizin başındaki <(sanal_ortam_adı)> görebilirsiniz veya

where python

komutuyla sorgulayabilirsiniz. Bu komutun çıktısının ilk satırı sizin aktif olan ortamınızdır.

aktif olan ortamı öğrenme

Son olarak bu sanal ortamdan çıkma komutunu da söyleyip bir sanal ortam kullanımı yapalım. Aktif ettiğimiz sanal ortamdan çıkmak için

deactivate

komutunu kullanırız.

Bir Örnek.

Örnek olarak bir senaryo oluşturalım. Senaryoya göre var olan ornek isimli projemiz için bağımlılıkları requirements.txt isimli dosyada modülleri ve sürümlerini tuttuğumuzu düşünelim. Bu dosyanın içerisinde

beautifulsoup4==4.7.1
urllib3==1.24.3
lxml==4.6.2

modül ve sürümleri olsun. Senaryoya göre bu projemizi bu modüllerin güncel sürümlerinde çalışıp çalışmadığını test etmek isteyelim ve bu test çalışmasınıda ornek2 isimli bir sanal ortamda test edelim.

ornek sanal ortamındayken pip list komutuyla modülleri listeleyelim

ornek sanal ortamı

şimdide ornek2 sanal ortamına geçip oradaki modülleri listeleyelim

ornek2 sanal ortamı

görüldüğü gibi sadece varsayılan modüller listeleniyor. Şimdi ornek projesinde kullandığımız modüllerin güncel versiyonlarını kuralım ve pip list komutu ile modüllere ait güncel versiyonları kontrol edelim.

ornek2 sanal ortamı

Artık ornek2 sanal ortamı aktifken, ornek sanal ortamından izole bir şekilde çalışacağı için projenizin ilgili modüllerin güncel sürümlerinde testlerini ve geliştirmelerinizi yapabilirsiniz.

Kaynaklar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir