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?

61
demandé sur karthikr 2013-09-23 22:46:13

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".

70
répondu karthikr 2017-01-17 02:09:40

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:

--all

Ne sautez pas ces paquets dans la sortie: pip, setuptools, distribute, wheel

20
répondu ForeverWintr 2017-02-11 00:32:38

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:

  1. Format de sortie, freeze nous donne le format d'exigence standard qui peut être utilisé plus tard avec pip install -r pour installer les exigences de.

  2. Le contenu de sortie, pip list inclut les modifiables que pip freeze Ne contient pas.

14
répondu Serjik 2016-04-13 22:15:20

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.

8
répondu Daniel Lahyani 2018-03-13 08:39:04