Сравнение результатов показывает различия:
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
В документации Pip говорится
freeze Output installed packages in requirements format.
list List installed packages.
но что такое «формат требований» и почему pip list
создается более полный список, чем pip freeze
?
python
python-2.7
python-3.x
pip
нитрл
источник
источник
Ответы:
Когда вы используете
virtualenv
, вы можете указатьrequirements.txt
файл для установки всех зависимостей.Типичное использование:
Пакеты должны быть в определенном формате,
pip
чтобы понять, чтоЭто «формат требований».
Здесь
django==1.4.2
подразумевается установленнаяdjango
версия1.4.2
(хотя последняя - 1.6.x). Если вы не укажете==1.4.2
, будет установлена последняя доступная версия.Вы можете прочитать больше в « Основах работы с Virtualenv и pip » и в официальной документации « Формат файла требований ».
источник
pip list
перечисляет все иpip freeze
устанавливает все, что установлено pip.pip install
wsgiref
.wsgiref.egg-info
в каталоге Lib, поэтому pip знает об этом. Вы не можете [отменить] установку с помощью pip, а более поздние версии Python опускают файл метаданных, поэтому он не отображается.Чтобы ответить на вторую часть этого вопроса, два пакета показаны,
pip list
но неpip freeze
являютсяsetuptools
(это easy_install) иpip
сам.Похоже, что
pip freeze
просто не перечислены пакеты, от которых зависит сам pip. Вы можете использовать этот--all
флаг, чтобы показать эти пакеты.Из документации :
источник
pip freeze
есть возможность--all
также показать:pip, setuptools, distribute, wheel
pip.pypa.io/en/stable/reference/pip_freezeОсновное отличие состоит в том, что вывод
pip freeze
можно выгрузить в файл requirements.txt и использовать позже для воссоздания «замороженной» среды.Другими словами, вы можете запустить:
pip freeze > frozen-requirements.txt
на одной машине, а затем позже на другой машине или в чистой среде, которую вы можете сделать:pip install -r frozen-requirements.txt
и вы получите идентичную среду с точно такими же установленными зависимостями, как и в исходной среде, в которой вы создал файл frozen-requirements.txt.источник
Посмотрите документацию по pip , в которой функциональность обоих описывается следующим образом:
список пунктов
замораживание пипса
Итак, есть два отличия:
Формат вывода
freeze
дает нам стандартный формат требований, который можно использовать позжеpip install -r
для установки требований из.Вывод содержимого,
pip list
включая редактируемые объекты, которыхpip freeze
нет.источник
pip list
показывает ВСЕ установленные пакеты.pip freeze
показывает пакеты, которые ВЫ установили с помощьюpip
(илиpipenv
при использовании этого инструмента) команды в формате требований.Замечание ниже, что setuptools , pip , wheel устанавливаются при
pipenv shell
создании моего виртуального конверта. Эти пакеты НЕ были установлены мной с использованиемpip
:Теперь просмотрите и сравните вывод соответствующих команд, в которых я установил только cool-lib и sampleproject (из которых перец является зависимостью):
источник