Python Virtual Environment(sanal ortam) Ve Paket Yönetimi

hardrez

Serhat

Posted on July 29, 2020

Python Virtual Environment(sanal ortam) Ve Paket Yönetimi

Virtual Environment nedir ?

Virual Environment, projelerimizde gerekli olan paketleri, sistemden bağımsız bir şekilde kurup, kullanmamızı olanak sağlayan bir yapıdır. En basit şekilde şöyle düşünebiliriz, gerekli bütün paketleri aslında proje için açmış olduğumuz dizine yüklüyor ve paketleri ihtiyaç halinde yine projenin içinde olduğu dizinden çekiyor. Bu bize neden gereklidir diye düşündüğümüzde şöyle bir senaryo üzerinden gidelim.
Örneğin A projesinde bir X paketinin 1.2.1 versiyonunu kullanmamız gerekiyor, farklı bir B projesinde ise aynı X paketinin 2.1 versiyonuna ihtiyaç duyduğumuz bir senaryomuz var. Bu gibi durumlarda paket yönetimini kolaylaştırmak ve hata ile karşılaşma ihtimalini de düşürmek için virtual environment çok kullanışlı bir yapı olmuş oluyor. Bir paketi sildiğimizde veya yükselttiğimizde, o paketi kullanan diğer projelerin de etkilenmemesini sağlıyor. İstediğimiz projeye istediğimiz gibi paket kurabilir, silebilir, yükseltebiliriz ve diğer projeler bundan etkilenmez.

Kurulum

Eğer sisteminizde yüklü değilse öncelikle pip3(python paket yöneticisi) yüklemeniz gerekmektedir.

sudo apt-get install python3-pip

Python 2.X.X için de kurabilirsiniz. Onun için "python3-pip" yerine "python-pip" yazmanız yeterlidir. Eğer bilgisayarınızda her iki python sürümü için de yüklemek istiyorsanız, ikisi içinde ayrı ayrı komutları girmeniz gerekmektedir.

Not:Eğer sisteminizde virtual environment yüklü olup olmadığını kontrol etmek istiyorsanız bu komutu kullanabilirsiniz:

virtualenv --version

Siteminizde yüklü ise size version bilgisini döndürür, eğer yüklü değil ise "command not found" şeklinde bir hata ile karşılaşırsınız

Gerekli pip3 kurulumunu da yaptıktan sonra artık virtual environment kurulumuna geçebiliriz.

sudo pip3 install virtualenv

Önemli Not: Eğer herhangi python 2.X.X sürümü ile çalışıyorsanız "pip3" argümanı yerine "pip" şeklinde kullanmanız gerekmektedir."pip3" python 3.X.X sürümlerine, "pip" ise diğer sürümlerine kurulum yapmaktadır.

Virtual environment kurulduğundan emin olmak için tekrar kontrol edebiliriz.

virtualenv --version

Kurulum başarılı bir şekilde tamamlandıysa, bu komutun çıktısı olarak kurmuş olduğumuz virtual environment yapısının version bilgisini görebiliriz.

Kurulum işlemimizi de doğruladıktan sonra artık geliştirme ortamımızı oluşturabiliriz. Örnek bir ortam için öncelikle masaüstüne "denemeEnv" adında dizin oluşturalım. Terminalimizi de bu dizin içerisinde açalım.
Oluşturmuş olduğumuz bu dizine virtualenv kuralım ve sanal geliştirme ortamımızı oluşturacağız.

virtualenv projeAdi

Komutu ile bulunduğumuz dizine sanal geliştirme ortamımızı kurmuş olduk. Fakat henüz geliştirme ortamamız aktif değildir. Demek istediğimi uygulamada çok daha iyi anlayabilirsiniz.
Geliştirme ortamımızı aktif hale getirmek için:

source projeAdi/bin/activate

komutumuzu çalıştırıyoruz. Ve artık şunu görebiliriz

(projeAdi) hardrez@pardus:~/Desktop/denemeEnv$

Gördüğünüz gibi komutlarımız artık "(projeAdi)" alanında çalışmaktadır.
Burada "pip3/pip" ile kuracak olduğumuz bütün paketler sadece bu proje içerisinde yer almaktadır.
Eğer bir başka bir projeye geçmek istiyorsak veya sanal ortamdan çıkmak istiyorsak:

deactivate

komutu ile sanal ortamdan çıkabiliriz. Aktişleştirmek için ise az önce belirttiğimiz komut ile tekrar o projeye ait sanal ortama girebilirsiniz.

Sanal ortamımızı aktif ettikten sonra, paket yöneticiniz ile hangi paketlerin kurulup kurulmadığını bu komutla kontrol edebiliriz.

pip3 list

Listeleme komutunun yanı sıra sadece yeni versionları çıkmış paketleri listelemek istiyorsak:

pip3 list --outdated

komutu ile yükseltebileceğimiz paketlerin listesini de görebiliriz.

Yüklü olan bir paketi yükseltmek için:

pip3 install --upgrade paketAdi

şeklinde komutumuzu kullanabiliriz.

Sanal ortama paket yükelemek istediğimizde yine normalde kullandığımız şekilde:

pip3 install paketAdi

istediğimiz paketimizi kurabiliriz.

Öncesinde paket kaldırabildiğimizden de bahsetmiştik. Ve kaldırdığımız bu paketler sadece bu proje için kalkıyor, sistemde herhangi bir değişikliğe sebep olmuyor(sanal ortamda olduğunuz sürece)

pip3 uninstall paketAdi

"paketAdi" kısmına kaldırmak istediğiniz paket adını girerek kaldırabiliriz.

Virtual environment kullanımı basitçe bu şekildedir, birden fazla proje ile çalıştığınızda veya büyük projlerde önemini çok daha iyi anlayabilirsiniz.

💖 💪 🙅 🚩
hardrez
Serhat

Posted on July 29, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related