Pip freeze vs. pip list

pip, python

Solution

One may generate a `requirements.txt` via:

$ pip freeze > requirements.txt

A user can use this `requirements.txt` file to install all the dependencies. For instance:

$ pip install -r requirements.txt

The packages need to be in a specific format for `pip` to understand, such as:

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

That is the "requirements format".

Here, `django==1.4.2` implies install `django` version `1.4.2` (even though the latest is 1.6.x). If you do not specify `==1.4.2`, the latest version available would be installed.

You can read more in "Virtualenv and pip Basics", and the official "Requirements File Format" documentation.

Problem

Why does `pip list` generate a more comprehensive list than `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 ``` Pip's documentation states: freeze Output installed packages in requirements format. list List installed packages. What is a "requirements format"?

Original source