Django ile yaptığım projelerimi VIRTUALENV ortamına kurup GUNICORN ve NGINX ile internet ortamına servis ediyorum.VIRTUALENV kullanmak versiyon farklılıklarından doğan yenilik ve değişikliklerden projeyi korumak için çok iyi oluyor.
Bir yıl önce yapmaya başladığım bir proje için kullandığım DJANGO versiyonu 1.8 idi şu an güncel versiyon 1.10 ama o zaman kullandığım bazı fonksiyonlar şu an kullanılabilir durumda değil. Sistemde yüklü DJANGO versiyonunu güncellersem herşey gidecek projeler çalışmaz duruma gelecek. Birden fazla DJANGO projesi geliştiriyorsanız ve ileride ne olacak kaygısı taşımak istemiyorsanız VIRTUALENV kullanmanızı öneririm.
VIRTUALENV kullanmak yukarda belirtiğim problemleri tamamıyla çözüyor sadece geriye platform farklılıklarından dolayı direk VIRTUALENV dosyalarını taşıyamamak kalıyor. Yani projeler linux sunucuda host edilirken ve bende macOSX de proje geliştirmeye çalışırken paket taşınılabilirliğinden dolayı bazı problemler çıkabiliyor.Aslında bunu çözmenin çok basit bir yöntemi var.
Kaynak (Debian) VIRTUALENV tan yüklü paketlerini versiyonlarıyla bereber okuyup bir dosyaya yazdırıp hedef (macOSX)VIRTUALENV ortamına yüklemek.
Kaynak virtualenv (Debian)
pip freeze > docs/requirements.txt
Hedef virtualenv (macOSX)
pip install -r requirements.txt