Python Virtualenv Kullanımı ve Yalıtılmış Projeler
4 min read

Python Virtualenv Kullanımı ve Yalıtılmış Projeler

Python Virtualenv Kullanımı ve Yalıtılmış Projeler

Virtualenv, yalıtılmış yani izole edilmiş Python çalışma ortamlarını hazırlayan bir araçtır. Projelerinize özgü alanlar oluşturarak sistemden bağımsız kütüphanelerle çalışabilir ve sistemin genelini etkilemezsiniz.

Python programlama dilinin kolaylığı birçoğumuzu hızlıca bir .py uzantılı dosya açıp hemen kodlarımızı yazdırmaya alıştırdı. Fakat projelerimizi bu şekilde yalıtımsız bir ortamda oluşturduğumuzda ve kütüphaneleri ekleyip güncelleştirdiğimizde aynı zamanda tüm sistem geneli etkilemiş oluyoruz. Tabi bu da aynı çalışma ortamı üzerindeki diğer projeleri etkileyerek çalışmamalarına bile sebebiyet verebilir.

Virtualenv kullanmak projelerimiz için yalıtılmış bir çalışma ortamı oluşturur. Yani projemiz için kuracağımız kütüphaneler ve güncelleme/kaldırma işlemleri sadece bu proje dahilinde geçerli olacaktır. Böylece kütüphaneler üzerinde yaptığınız tüm işlemler diğer projelerimizi etkilemeyecek. O zaman hemen kurulumumuzu yaparak başlayalım.

1. Virtualenv Kurulumu

Virtualenv kurulumu için pip kullanabiliriz.

python -m pip install --user virtualenv

Ardından modülün kurulduğunu doğrulamak için versiyon kontrolü yapabilirsiniz.

virtualenv -version

2. Virtualenv İle Proje Oluşturma

Teknik olarak izole edilmiş bir çalışma alanı oluşturabileceğimizi, hatta bunun geliştiriciler için büyük önem arz ettiğini yukarıda söyledik. Şimdi ise kütüphanemizi kurduktan sonra ilk sanal çalışma ortamımızı oluşturalım.

virtualenv PROJEADI

Direkt proje adıyla oluşturduğumuz sanal ortamlar lokasyon olarak komut satırınızın o an ki bulunduğu dizinde bulunur. Tabi projeyi özel bir dosya konumu belirterek de oluşturabiliriz.

virtualenv C:\Users\Kerteriz\Desktop\PROJEADI

Proje konumunu sanal ortamı oluşturduktan sonra cmd çıktısında da görebilirsiniz.

979x158

3. Virtualenv Çalışma Ortamına Modül Kurmak

Yalıtılmış çalışma ortamımızı oluşturduğumuza göre bu klasör içinde artık kodlarımızı yazmaya başlayabiliriz. Peki kurmamız gereken bir kütüphane olduğunda ne yapacağız? Sorumuzun cevabı önce sanal ortamı çalıştırmak ve ardından kurulu yapmak olacaktır. Çalışma ortamını başlatmak için de virtualenv proje dizinimizde bulunan Script klasöründe ki active dosyasını kullanmalıyız. Hemen görelim:

İlk olarak komut satırı üzerinden ilgili dizine gidip virtualenv i çalıştıralım.

979x152

İşte şimdi rahatça kütüphanelerimizi kurmaya başlayabiliriz. Ama öncesinde öntanımlı olarak hangi kütüphaneler geliyor onu görelim.

979x157

Gördüğünüz gibi tertemiz bir başlangıç yapmışısz. Halbuki bilgisayarımda kurulu olan onlarca kütüphane olmasına rağmen izole edilmiş çalışma alanımızda sadece üç kütüphane gözüküyor. Şimdi ise örnek amaçlı rastgele bir kütüphane kuralım.

979x378

Resimde de görüldüğü gibi kütüphanelerimiz arttı. Fakat aynı pip list komutunu virtualenv dışında kullanıdığınızda listede pyjnius isimli modülü bulamayacaksınız. Çünkü sadece kendi projemiz için kurduk.

Kurulum işleminiz bittikten sonra deactivate komutu ile virtualenvi sonlandırabilir ve normal komut istemine dönebilirsiniz.

4. Virtualenv Çalışma Ortamında Programı Çalıştırmak

Şu ana kadar sistemden izole bir şekilde sadece projemiz için nasıl kütüphane kuracağımızı gördük. Öyleyse artık kodlarımızı yazabilir ve programımızı çalıştırabiliriz. Fakat py dosyanızı her zamanki gibi çalıştırırsanız maalesef ki hata alırsınız. Tıpkı aşağıdaki resimde olduğu gibi.

979x140

Bu rastgele kütüphaneyi sisteme değil kendi proje alanımıza kurduğumuz için modül bulunamadı hatası alıyoruz. Çözüm olarak ise önce virtualenvi activate ile aktif edip ardından programımızı çalıştırmak olacaktır.

979x235

Tebrikler! rastgele kurduğumuz kütüphanemizle ilgili bir problem olsada programımız kütüphaneyi bularak çalıştı. Tam da istediğimiz gibi 🙂

SONUÇ

Projelerinizi yazarken daha sağlıklı bir ortam oluşturabilmek ve diğer projelerinize zarar vermemek için virtualenv kullanmanızı şiddetle tavsiye ediyoruz. Bu kullanım tarzı ileride izole ortamlarınız içinde bir el alışkanlığı sağlayacaktır. Son olarak sorularınız için aşağıdaki yorum alanını kullanabilirsiniz.