Une comparaison des extrants 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
États de la documentation de Pip
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
?
python
python-2.7
python-3.x
pip
nitrl
la source
la source
Réponses:
Lorsque vous utilisez a
virtualenv
, vous pouvez spécifier unrequirements.txt
fichier pour installer toutes les dépendances.Une utilisation typique:
Les packages doivent être dans un format spécifique pour
pip
comprendre, qui estC'est le "format des exigences".
Ici,
django==1.4.2
implique ladjango
version d' installation1.4.2
(même si la dernière est la 1.6.x). Si vous ne le spécifiez pas==1.4.2
, la dernière version disponible sera installée.Vous pouvez en savoir plus dans " Virtualenv and pip Basics " et dans la documentation officielle " Requirements File Format ".
la source
pip list
répertorie tout etpip freeze
installe tout ce qui est installé par pip.pip install
wsgiref
.wsgiref.egg-info
dans le répertoire Lib, c'est pourquoi pip le sait. Vous ne pouvez pas le [dés] installer avec pip, et les versions ultérieures de Python omettent le fichier de métadonnées pour qu'il n'apparaisse pas.Pour répondre à la deuxième partie de cette question, les deux packages affichés dans
pip list
mais nonpip freeze
sontsetuptools
(qui est easy_install) etpip
lui - même.Il semble
pip freeze
que ne répertorie tout simplement pas les paquets dont pip dépend lui-même. Vous pouvez utiliser le--all
indicateur pour afficher également ces packages.De la documentation :
la source
pip freeze
a une option--all
pour afficher aussi:pip, setuptools, distribute, wheel
pip.pypa.io/en/stable/reference/pip_freezeLa principale différence est que la sortie de
pip freeze
peut être sauvegardée dans un fichier requirements.txt et utilisée 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 une machine différente 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 a généré le fichier Frozen-requirements.txt.la source
Regardez la documentation pip , qui décrit les fonctionnalités des deux comme:
liste pip
gel de pip
Il y a donc deux différences:
Format de sortie,
freeze
nous donne le format d'exigence standard qui peut être utilisé plus tard avecpip install -r
pour installer les exigences à partir de.Contenu de sortie,
pip list
inclure les éditables quipip freeze
ne le font pas.la source
pip list
affiche TOUS les packages installés.pip freeze
affiche les packages que VOUS avez installés viapip
(oupipenv
si vous utilisez cet outil) dans un format requis.Remarque ci-dessous que setuptools , pip , wheel sont installés lors de la
pipenv shell
création de mon enveloppe virtuelle. Ces packages n'ont PAS été installés par moi en utilisantpip
:Maintenant, examinez et comparez la sortie des commandes respectives où je n'ai installé que cool-lib et sampleproject (dont le poivre est une dépendance):
la source