Meşe Bilişim şirketinde Software Testing dersi süresince kullanacağımız araçlardan birisi olan Virtual Environment nedir, neden ihtiyaç duyuyoruz kısaca bu yazı ile bahsetmek istedim.

Python Virtual Environment; Türkçe ismi ile Sanal Ortam. Peki sanal ortamlara neden ihtiyaç duyuyoruz, bu araç hangi sorunun çözümü yazının geri kalanında bu soruya kapsamlı olmasa da yanıt vereceğiz.

Meşe Bilişim şirket kurucusu Şahin Mersin tarafından 2.hafta dersinde anlatılan Django kurulumu öncesinde bilmemiz gereken bir araç olan Sanal Ortam; birden fazla Python projelerinde olabilecek paket çakışmalarını önlemek amacı ile kullanılmaktadır.

Örnek vermek gerekirse; derste geliştirmekte olduğumuz blog uygulaması için Django 1.9 sürümünü kullanıyoruz. Fakat Django 2.0.2 sürümü yayınlandı. Sanal ortam aracılığıyla "blog" uygulamamızda Django 1.9 sürümünü kullanırken başka bir projede Django 2.0.2 yada farklı bir sürüm kullanabiliriz.


Sanal ortam sayesinde bir birinden ayrı projeler için yüklediğimiz yada sildiğimiz paketler, paket sürümleri birbirini etkilemez. Bu sayede projelerimizin yönetimi de bizim için daha kolay hale gelmektedir.

Virtual Environment kurulumu

python3 -m venv myvenv

Proje dizininde yukarıdaki komutu işlettiğinizde sanal ortamınız oluşacaktır. Oluşan sanal ortamın ismi de "myvenv" olacaktır. Burada dilediğiniz gibi isimlendirme yapabilirsiniz.

Terminal üzerinden verdiğimiz komut sonrasında sanal ortamımız oluştu fakat şu anda aktif değil kullanım için aktif etmemiz gerekmektedir.

cd myvenv/bin

source activate

Yukarıdaki komutları terminal aracılığıyla işlettiğimizde artık sanal ortamımız aktif ve bu proje için kullanacağımız web çatısı paket ve modüllerin sürümü sadece bu ortamımız için geçerli olacak. Oluşturulan bu izole ortam sayesinde tüm projelerimiz birbirinden ayrı şekilde karışıklık olmadan yönetilebilir hale getirdik.

Daha fazlası için; https://docs.python.org/3/tutorial/venv.html