Stephen'ın önerisi güzel bir fikir, ancak maalesef dosyanıza yalnızca doğrudan gereksinimler eklerseniz, bu bana daha temiz geliyorsa işe yaramaz.
Tüm bağımlılıklar bile dahil kaldırılacak distribute
yıkarak pip
kendisi.
Sürüm sanal bir ortamı izlerken temiz bir gereksinimler dosyasını korumak
İşte sanal ortamımın versiyonunu izlemeye nasıl çalıştığım. requirements.txt
Yalnızca doğrudan gereksinimler dahil olmak üzere minimum düzeyde tutmaya çalışıyorum ve emin olmadığım durumlarda sürüm kısıtlamalarından bahsetmiyorum bile.
Ancak bunun yanı sıra, sanal ortamımın gerçek durumunu bir venv.pip
dosyada tutuyor ve sürüm izlemeye (git diyelim) dahil ediyorum .
İşte örnek bir iş akışı:
sürüm izleme ile virtualenv çalışma alanını kurun:
mkdir /tmp/pip_uninstalling
cd /tmp/pip_uninstalling
virtualenv venv
. venv/bin/activate
sürüm izleme sistemini başlatın:
git init
echo venv > .gitignore
pip freeze > venv.pip
git add .gitignore venv.pip
git commit -m "Python project with venv"
bağımlılıkları olan bir paket yükleyin, gereksinimler dosyasına ekleyin:
echo flask > requirements.txt
pip install -r requirements.txt
pip freeze > venv.pip
Şimdi uygulamanızı oluşturmaya başlayın, ardından taahhütte bulunun ve yeni bir şube başlatın:
vim myapp.py
git commit -am "Simple flask application"
git checkout -b "experiments"
fazladan bir paket kurun:
echo flask-script >> requirements.txt
pip install -r requirements.txt
pip freeze > venv.pip
... onunla oynayın ve ardından önceki sürüme dönün
vim manage.py
git commit -am "Playing with flask-script"
git checkout master
Şimdi gereksiz paketleri kaldırın:
pip freeze | grep -v -f venv.pip | xargs pip uninstall -y
Sanırım işlem git kancaları ile otomatikleştirilebilir, ancak konu dışına çıkmayalım.
Tabii ki, o zaman bazı paket önbelleğe alma sistemi veya pip2pi gibi yerel depo kullanmak mantıklıdır.