İşimde ve kendi projelerimde genelde
Django kullanıyorum. Django ile yazılım geliştirirken bir çok üçüncü
parti uygulama kurmak gerekebiliyor. Örneğin migration işlemleri için
south kurmak gerekiyor. Diyelim ubuntu kullanıyorsunuz ve south ubuntu
deposunda var. Veya pip, easy_install gibi python paket sistemleri ile
kurulum yapıyorsunuz. Bu durumda bu paketler sistemin geneline
kuruluyor. Bu durumun ne gibi sıkıntıları var derseniz, projeye özel
değişik versiyonda kütüphaneleri denemek zorlaşıyor. İşte tam bu sırada
virtualenv gibi harika bir araç yardımımıza koşuyor. virtualenv kısaca
bize özel bir python alanı yaratıyor ve orada yaptığımız kurulumların
sadece orada geçerli olmasını sağlıyor. Şimdi ubuntu’da adım adım
virtualenv kurulumu ve kullanımını inceleyelim.
Öncesinde sistemimizde easy_install ve pip kurulu değilse bu
işlemleri halledelim. Terminalde aşağıdaki komutu vererek paket
kurulumlarımızı yapalım.
Evet kurmamız gereken .deb paketleri tamam. Şimdi pip kurmamız
gerekiyor. İsterseniz virtualenv ile easy_install’ı kullanabilirsiniz.
Ancak ben pip kullanmayı daha çok seviyorum. Bazı üstünlükleri olduğu
bir gerçek easy_install’a karşı. Aşağıdaki komutu işletelim.
1
$ sudo easy_install pip
pip kurulduğuna göre artık virtualenv’yi pip aracılığıyla kurabiliriz.
1
$ sudo pip install virtualenv
virtualenv sisteme kuruldu ve sanal python ortamları yaratmamız için
bir engelimiz kalmadı. Bir virtual environment (sanal ortam) yaratmak
için aşağıdaki gibi bir komut işletmeniz gerekiyor.
123
$ virtualenv --no-site-packages –-distribute example
New python executable in example/bin/python Installing distribute………………………………………………………………………………………………………………………done. New python executable in example/bin/pythonInstalling distribute ……………………………………………………………………………………………………………………………done.
Buradaki example ortamımızın ismi. Bunu dilediğiniz gibi
verebilirsiniz. Python ortamınız bu dizin içinde şekillenecek.
İsterseniz path verebilirsiniz. Benim önerim python_environments gibi
bir dizin açıp tüm ortamlarınızı burada bulundurmanız. Düzen iyidir
virtualenv’ı kurduk ancak onu aktif etmeden kullanmaya başlayamıyoruz. Aktif etmek için aşağıdaki yolu izliyoruz.
1
$ source example/bin/active
Bu komuttan sonra imlecin olduğu bölümün değiştiğini farkedersiniz.
Genelde sanal ortamın adı yazar. Bir sorun yoksa artık aktif halde bir
sanal ortamımız var. Sanal ortamdan çıkmak için diğer bir deyimle
deaktif etmek isterseniz;
1
(example)~$ deactivate
Python sanal ortamından çıkmış oluyorsunuz böylece. Şimdi sanal
ortamımızda istediğimiz paketleri kuralım. Örnek olması açısından Django
üzerinden gidelim istiyorum. Django kurmak için pip komutunu aktif
edilmiş sanal ortamımız içindeyken yazıyoruz.
123
(example)~$ pip install Django
Downloading/unpacking Django Downloading Django-1.3.tar.gz (6.5Mb): 6.5Mb downloaded Running setup.py egg_info for package Django Installing collected packages: Django Running setup.py install for Django changing mode of build/scripts-2.6/django-admin.py from 644 to 755 changing mode of /home/cihann/example/bin/django-admin.py to 755 Successfully installed Django Cleaning up…
Django başarıyla kuruldu. Şu an Django’nun sadece example sanal
ortamında kurulu olduğunu hatırlatalım. Ayrıca farkettiyseniz kurulum
yaparken sudo ile yetki almaya vs. ihtiyaç duymadık. Sistem geneline
kurulmadığı için bir yetki alma gereği duymuyor. Yazı biraz uzayacak ama
virtualenv ile ufak bir Django uygulaması başlatalım istiyorum. Böylece
requirements.txt denen dosya ile paket yönetiminede girmiş oluruz.
Django artık sanal ortamda kurulu olduğuna göre şu komutu işletiyoruz.
Bu komutla bir Django projesi oluşturmuş olduk. Artık sanal ortamda
pip ile paket kurmayı biliyoruz. Ancak bir çok paket kurmak
istediğimizde bunları tek tek kurmak yerine paket listesini çıkarıp bunu
bir dosyaya yazıp oradan kurulum ve yönetimi yapabiliriz. Bu dosyanın
adı requirements.txt. Django projemizin içine gidelim ve
requirements.txt adında bir dosya oluşturalım.
123
(example)~$ cd example_django/
(example)~/example_django$ touch requirements.txt
requirements.txt dosyamızın içine istediğimiz paketleri yazalım. Örnek olarak şöyle bir dosya ile başlayabiliriz.
1
South==0.7.3 django-taggit==0.9.2 Markdown==2.0.3
Evet requirements.txt dosyamız hazır. Şimdi nasıl bu paketleri bu dosya üzerinden kuracağımızı görelim.
123
(example)~/example_django$ pip install -r requirements.txt
Downloading/unpacking Markdown==2.0.3 (from -r requirements.txt (line 3)) Downloading Markdown-2.0.3.tar.gz (71Kb): 71Kb downloaded Running setup.py egg_info for package Markdown Downloading/unpacking django-taggit==0.9.2 (from -r requirements.txt (line 2)) Downloading django-taggit-0.9.2.tar.gz Running setup.py egg_info for package django-taggit Downloading/unpacking South==0.7.3 (from -r requirements.txt (line 1)) Downloading South-0.7.3.tar.gz (70Kb): 70Kb downloaded Running setup.py egg_info for package South Installing collected packages: django-taggit, Markdown, South Running setup.py install for django-taggit Running setup.py install for Markdown changing mode of build/scripts-2.6/markdown from 644 to 755 changing mode of /home/cihann/example/bin/markdown to 755 Running setup.py install for South Successfully installed django-taggit Markdown South Cleaning up…
Süper! Paketler sanal ortamımıza kuruldu. virtualenv ile gördüğünüz
üzere çok rahat bir Python çalışma ortamı kurulabiliyor. Geliştirdiğiniz
uygulamayı başka bir sanal ortama taşıyıp orada farklı sürüm
kütüphanelerle deneyebilirsiniz. Sanal ortamla işiniz bittiğinde onu
silebilirsiniz.
Mutlu kodlamalar (:
Kaynak : http://cihanokyay.com/blog/2011/12/16/virtualenv-ve-pip-uzerine/
Hiç yorum yok:
Yorum Gönder