Подтвердить что ты не робот

Список блокировок

Сравнение выходов показывает различия:

[email protected]:~$ pip list
feedparser (5.1.3)
pip (1.4.1)
setuptools (1.1.5)
wsgiref (0.1.2)
[email protected]:~$ pip freeze
feedparser==5.1.3
wsgiref==0.1.2

Состояние документации по протоколу

freeze                      Output installed packages in requirements format.
list                        List installed packages.

но что такое "формат требований" и почему pip list генерирует более полный список, чем pip freeze?

4b9b3361

Ответ 1

Когда вы используете virtualenv, вы можете указать файл requirements.txt для установки всех зависимостей.

Типичное использование:

$ pip install -r requirements.txt

Пакеты должны быть в определенном формате для pip, чтобы понять, что

feedparser==5.1.3
wsgiref==0.1.2
django==1.4.2
...

Это "формат требований".

Здесь django==1.4.2 подразумевает установку django version 1.4.2 (хотя последнее - 1.6.x). Если вы не укажете ==1.4.2, будет установлена ​​последняя версия.

Вы можете прочитать больше в разделе Virtualenv and pip Basics", и официальную документацию Формат файла требований.

Ответ 2

Чтобы ответить на вторую часть этого вопроса, два пакета, показанные в pip list но не pip freeze - это setuptools (который является easy_install) и сам pip.

Похоже, что pip freeze просто не отображает пакеты, от которых зависит сам выбор. Вы можете использовать флаг --all чтобы показывать также эти пакеты.

Из документации:

--all

Не пропускайте эти пакеты на выходе: pip, setuptools, distribute, wheel

Ответ 3

Посмотрите документацию pip, в которой описываются функциональные возможности обоих:

список пикетов

Список установленных пакетов, включая редактируемые.

замораживание контура

Вывести установленные пакеты в формат требований.

Итак, существуют две отличия:

  • Формат вывода freeze дает нам стандартный формат требований, который может быть использован позже с pip install -r для установки требований.

  • Выходной контент pip list включает редактируемые файлы, которые pip freeze не поддерживает.

Ответ 4

Основное различие заключается в том, что вывод pip freeze может быть сброшен в файл requirements.txt и позже использован для повторной конструкции "замороженной" среды.

Другими словами, вы можете запустить: pip freeze > frozen-requirements.txt на одном компьютере, а затем на другом компьютере или в чистой среде, которую вы можете сделать: pip install -r frozen-requirements.txt и вы Получите идентичную среду с теми же зависимостями, которые были установлены так же, как и в исходной среде, где вы создали замороженный -r equirements.txt.