PIP freeze vs liste pip
Une comparaison des sorties révèle des différences:
user@user-VirtualBox:~$ pip list
feedparser (5.1.3)
pip (1.4.1)
setuptools (1.1.5)
wsgiref (0.1.2)
user@user-VirtualBox:~$ pip freeze
feedparser==5.1.3
wsgiref==0.1.2
La documentation de Pip indique
freeze Output installed packages in requirements format.
list List installed packages.
Mais qu'est-ce que le "format des exigences", et pourquoi pip list génère-t-il une liste plus complète que pip freeze?
4 réponses
Lorsque vous utilisez un virtualenv, vous pouvez spécifier un requirements.txt fichier pour installer toutes les dépendances.
Un usage typique:
$ pip install -r requirements.txt
Les paquets doivent être dans un format spécifique pour pip à comprendre, qui est
feedparser==5.1.3
wsgiref==0.1.2
django==1.4.2
...
C'est le "format des exigences".
Ici django==1.4.2 implique installer django version 1.4.2 (même si la dernière est la 1.6.x).
Si vous ne spécifiez pas ==1.4.2, la dernière version disponible sera installée.
Vous pouvez en savoir plus dans "bases Virtualenv et pip ", et la documentation officielle "Requirements File Format".
Pour répondre à la deuxième partie de cette question, les deux paquets indiqué dans pip list, mais pas pip freeze sont setuptools (qui est easy_install) et pip lui-même.
Il semble que pip freeze ne Liste tout simplement pas les paquets dont pip lui-même dépend. Vous pouvez utiliser l'indicateur --all pour afficher également ces paquets.
À Partir de la documentation:
--allNe sautez pas ces paquets dans la sortie: pip, setuptools, distribute, wheel
Regardez la documentation pip , qui décrit les fonctionnalités des deux comme:
Liste Pip
Liste les paquets installés, y compris les modifiables.
PIP freeze
Affiche les paquets installés au format requis.
Il y a donc deux différences:
Format de sortie,
freezenous donne le format d'exigence standard qui peut être utilisé plus tard avecpip install -rpour installer les exigences de.Le contenu de sortie,
pip listinclut les modifiables quepip freezeNe contient pas.
La principale différence est que la sortie de pip freeze peut être déversée dans une configuration requise.fichier txt et utilisé plus tard pour reconstruire l'environnement "gelé".
En d'autres termes, vous pouvez exécuter:
pip freeze > frozen-requirements.txt sur une machine, puis plus tard sur un autre ordinateur ou sur un environnement propre, vous pouvez le faire:
pip install -r frozen-requirements.txt
et vous obtiendrez un environnement identique avec exactement les mêmes dépendances installées que dans l'environnement d'origine où vous avez généré les exigences gelées.txt.