194 votes

Gel des pipes ou liste des pipes

Pourquoi les pip list générer une liste plus complète que celle de l pip freeze ?

$ pip list
feedparser (5.1.3)
pip (1.4.1)
setuptools (1.1.5)
wsgiref (0.1.2)

$ pip freeze
feedparser==5.1.3
wsgiref==0.1.2

La documentation de Pip indique que

geler

Affiche les paquets installés dans le format des exigences.

liste

Liste des paquets installés.

Qu'est-ce qu'un "format d'exigences" ?

169voto

karthikr Points 36157

On peut générer un requirements.txt via :

$ pip freeze > requirements.txt

Un utilisateur peut utiliser cette requirements.txt pour installer toutes les dépendances. Par exemple :

$ pip install -r requirements.txt

Les paquets doivent être présentés dans un format spécifique pour pip à comprendre, comme par exemple :

# requirements.txt
feedparser==5.1.3
wsgiref==0.1.2
django==1.4.2
...

Il s'agit du "format d'exigences".

Ici, django==1.4.2 implique l'installation django version 1.4.2 (même si la dernière version est 1.6.x). Si vous ne spécifiez pas ==1.4.2 la dernière version disponible sera installée.

Pour en savoir plus, consultez la rubrique " Les bases de Virtualenv et de pip ", et l'officiel " Exigences Format du fichier La documentation ".

67voto

ForeverWintr Points 611

Pour répondre à la deuxième partie de cette question, les deux paquets présentés dans le document pip list mais pas pip freeze sont setuptools (qui est facile à installer) et pip même.

On dirait que pip freeze ne liste pas les paquets dont pip lui-même dépend. Vous pouvez utiliser l'option --all pour afficher également ces paquets.

En la documentation :

--all

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

60voto

Daniel Lahyani Points 286

La principale différence est que la sortie de pip freeze peuvent être versées dans un fichier requirements.txt et utilisées ultérieurement pour reconstruire l'environnement "gelé".

En d'autres termes, vous pouvez courir : pip freeze > frozen-requirements.txt sur une machine, puis plus tard sur une autre machine ou dans un environnement propre : pip install -r frozen-requirements.txt et vous obtiendrez un environnement identique avec les mêmes dépendances installées que dans l'environnement original où vous avez généré le fichier frozen-requirements.txt.

31voto

Serj Points 748

Regardez le documentation pip qui décrit la fonctionnalité des deux comme suit :

liste des pip

Liste des paquets installés, y compris les éléments modifiables.

gel du pipeline

Affiche les paquets installés dans le format des exigences.

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.

  2. Contenu de la sortie, pip list comprennent des éléments modifiables qui pip freeze ne le fait pas.

20voto

F1Linux Points 129

pip list spectacles TOUS les paquets installés.

pip freeze forfaits spectacles VOUS installé via pip (ou pipenv si vous utilisez cet outil) dans un format d'exigences.

Remarquons ci-dessous que outils d'installation , tuyau , roue sont installés lorsque pipenv shell crée mon enveloppe virtuelle. Ces paquets étaient PAS installé par mes soins à l'aide de pip :

test1 % pipenv shell
Creating a virtualenv for this project…
Pipfile: /Users/terrence/Development/Python/Projects/test1/Pipfile
Using /usr/local/Cellar/pipenv/2018.11.26_3/libexec/bin/python3.8 (3.8.1) to create virtualenv…
 Creating virtual environment...
<SNIP>
Installing setuptools, pip, wheel...
done.
 Successfully created virtual environment! 
<SNIP>

Maintenant, examinez et comparez les résultats des commandes respectives où j'ai seulement installé cool-lib y exemple de projet (dont poivre de cayenne est une dépendance) :

test1 % pip freeze       <== Packages I'VE installed w/ pip

-e git+https://github.com/gdamjan/hello-world-python-package.git@10<snip>71#egg=cool_lib
peppercorn==0.6
sampleproject==1.3.1

test1 % pip list         <== All packages, incl. ones I've NOT installed w/ pip

Package       Version Location                                                                    
------------- ------- --------------------------------------------------------------------------
cool-lib      0.1  /Users/terrence/.local/share/virtualenvs/test1-y2Zgz1D2/src/cool-lib           <== Installed w/ `pip` command
peppercorn    0.6       <== Dependency of "sampleproject"
pip           20.0.2  
sampleproject 1.3.1     <== Installed w/ `pip` command
setuptools    45.1.0  
wheel         0.34.2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X