Cela devrait désinstaller tout ce qui n'est pas dans le fichier requirements.txt :
pip freeze | grep -v -f requirements.txt - | grep -v '^#' | xargs pip uninstall -y
Bien que cela ne fonctionne pas tout à fait correctement avec les paquets installés avec -e
c'est-à-dire à partir d'un dépôt git ou similaire. Pour les ignorer, il suffit de filtrer les paquets commençant par l'icône -e
drapeau :
pip freeze | grep -v -f requirements.txt - | grep -v '^#' | grep -v '^-e ' | xargs pip uninstall -y
Alors, évidemment :
pip install -r requirements.txt
Mise à jour pour 2016 : Cependant, vous n'avez probablement pas vraiment envie d'utiliser l'approche ci-dessus. Vérifiez pip-tools
y pip-sync
qui accomplissent ce que vous cherchez probablement à faire d'une manière beaucoup plus robuste.
https://github.com/nvie/pip-tools
Mise à jour pour mai 2016 :
Vous pouvez maintenant aussi utiliser pip uninstall -r requirements.txt
Cependant, cela accomplit essentiellement le contraire - il désinstalle tout ce qui se trouve dans la base de données de l'entreprise. requirements.txt
Mise à jour pour mai 2019 :
Vérifiez pipenv o Poésie . Beaucoup de choses se sont passées dans le monde de la gestion des paquets qui rendent ce genre de question un peu obsolète. En fait, je suis toujours heureux d'utiliser pip-tools, cependant.