Python üzerindeki en büyük problemlerden birisi olan 2.x mi yoksa 3.x sürümünü mü kullanılacağı soru işareti 2020 yılının 1 Ocak'ında tarihe karışarak artık Python2'ye destek olunmayacağı belirtilerek Python3 üzerinde geliştirme yapılmasını olumlu kıldı.
Tabi ki 3.x sürümleri de kendi aralarında farklı paketlere farkı şekilde destek verebilmekte, farklı paketler çeşitli paket bağımlılıklarına sahip olduğu için bu yapıyı daha iyi anlamak ve kullanmak oldukça önemli.
Bu yazımızda aslında Python üzerinde sanal ortam oluşturmaya giriş yapacağız.
Sanal ortam paketinin kurulumu
Öncelikle Python üzerinde sanal ortam kurabilmek için Debian tabanlı sistemlerde aşağıdaki paketi kurmanız gerekmektedir. Tabi ki bir de ileride çok lazım olacak paket yönetim aracı olan pip'i de kurabiliriz.
sudo apt install python3-venv python3-pip
Sanal ortam oluşturma
Sanal ortam oluşturmadan önce bu sanal ortamın dosya sistemi üzerinde nerede olacağını belirtmeniz gerekiyor. Herhangi bir yerde yetkilere sahip olduğunuz sürece oluşturabilirsiniz. İsterseniz /usr/share/aciklab/ gibi yerlere koyabilirsiniz, isterseniz de test ortamı ve kendiniz kullanacaksanız bulunduğunuz yol üzerinde de kullanabilirsiniz.
Örneğin sanalortamlar diye bir klasör oluşturup onun altında farklı ortamlar oluşturabiliriz. Bunun için bulunduğunuz herhangi bir yerde bir klasör oluşturabilirsiniz.
mkdir sanalortamlar
Daha sonra bu klasör içinde farklı 2 ortam oluşturabilirsiniz. Tabi ki daha fazla da oluşturabilirsiniz:
python3 -m venv sanalortamlar/ortam1
python3 -m venv sanalortamlar/ortam2
İlgili sanal ortamların içeriğine "ls -l" komutu ile bakabilirsiniz. Her birinde daha sonradan kendine özgü kütüphaneler ve python sürümleri kullanabiliriz.
Sanal ortamı kullanabilme
Sanal ortamları oluşturmanız demek onları hemen kullandığınız anlamına gelmez. Hatta bu işlemleri yaptığınızda sanal ortamları kullanmış olmuyorsunuz. Kullanabilmek için aşağıdaki komut ile o ortamı aktif etmeniz gerekmektedir.
source sanalortamlar/ortam1/bin/activate
Bu komut ile birlikte artık sanal ortam kullandığını kabuk üzerinde aktif hale gelecektir. Ama tüm sistem üzerinde veya kendi oturumunuz üzerinde değil. Sadece kullandığınız kabuk üzerinde aktif hale gelecektir. Hatta kabuğun başında aşağıdaki gibi bir (ortam1) ifadesi yer alacaktır:
(ortam1) alorak@makineadi:~/isler/
Artık bu kabuk üzerinde çalıştıracağınız tüm işlemler bu ortam üzerindeki python ve modülleri üzerinde çalışacaktır. Yani çok kısa bir örnek vermek gerekirse pip ile kuracağınız paramiko kütüphanesi sadece bu ortam ayakta iken çalışabilecektir.
Bu ortamda yapacağınız paket yüklemeleri gerçek ortamınızı bozmayacağı için rahatlıkla çalışmalarınızı yapabilirsiniz. Tabi ki sanal ortamda olduğunuza dikkat ederek.
Sine scientia ars nihil est