Gerek yerel sisteminizde gerekse sunucularınızda birden fazla uygulama bulunduruyorsunuzdur. Çoğunun kendine has bağımlılıkları ya da bazı uygulamaların belirli sürümlerine bağımlılıkları olabilir. Bu gibi durumlarda virtualenv yardımınıza yetişiyor ve sisteminizden izole Python ortamları oluşturmanızı sağlıyor.
Bu sayede Python 2.5 ile 2.7 veya 3 kullanan uygulamalarınızı birbirinden farklı ortamlarda çalıştırabilir ve bir takım sorunların önüne geçebilirsiniz. Veya uygulama bağımlılıklarını doğrudan sisteme kurmak yerine sadece çalışılacak ortama kurabilirsiniz.
kurulum
virtualenv’i easy_install ya da pip ile kolayca kurabilirsiniz.
1 2 | |
ortam oluşturma
Basitçe sanal ortam oluşturmak için:
1
| |
Bu komutu çalıştırdığınızda ortam taslağını (gerekli betikler, python ve setuptools) ortam_adi dizini altına kopyalar. Bu ortamı kullanırken kurduğunuz python paketlerini ortam_adi/lib/pythonX.X/site-packages dizini altında bulabilirsiniz.
Eğer setuptools yerine distribute kullanmak isterseniz ortamı oluştururken --distribute parametresini kullanabilirsiniz.
1
| |
Farklı python sürümü kullanarak ortam oluşturmak için:
1
| |
kullanım
Yeni ortamımızı başarıyla oluşturduk, biraz da etkin kullanım adımlarına bakalım isterseniz.
Ortamımızı etkinleştirmek için:
1 2 | |
Ortamı etkinleştirdiğinizde komut istemi satırındaki değişikliği fark edeceksiniz. Bu andan itibaren yaptığınız her kurulum o ortama özel olacak ve sisteminizi etkilemeyecek.
Ortamı pasifleştirip sistem öntanımlı ortamına dönmek için:
1
| |
Paket kurulumu için doğrudan pip’i ya da easy_install’u kullanabiliriz.
1
| |
Burada örnek olarak yolk paketini verdim, hem küçük bir paket olduğu için hem de işinize yarayabileceği için fark etmenizi istedim. Yolk ortamınızda kurulu python paketlerini görüntülemenizi sağlayan bir araç.
1
| |
Bu listede bazı paketlerin sistemden inherit edildiğini göreceksiniz, eğer ortamı tamamıyla sistemden izole etmek isterseniz ortamı oluşturma esnasında --no-site-packages parametresini kullanabilirsiniz.
Sanal ortamımıza kurduğumuz paketlerin sistemi etkilemediğini denemek isterseniz de:
1 2 3 | |
pip kullanacaksanız uygulamanız için bir bağımlılık dosyası oluşturup onu da kullanabilirsiniz. Bu özelliği denemek için de requirements.txt isimli bir dosya oluşturup içine birkaç paket yazın ve ardından pip ile yükleyin:
1 2 3 4 | |
1
| |
ayarlar
Eğer ortam oluştururken kullandığınız ayarları her seferinde yazmaktan yorulduysanız bir ayar dosyası ile bu işi çözebilirsiniz.
1 2 3 4 5 6 | |
Şimdilik benden bu kadar, ayarlarınızı detaylandırmak isterseniz virtualenv belgelerine bir göz atın derim.