Pip freeze vs. pip list

A comparison of outputs reveals differences:

    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's documentation states

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

but what is "requirements format," and why does pip list generate a more comprehensive list than pip freeze?

When you are using a virtualenv, you can specify a requirements.txt file to install all the dependencies.

A typical usage:

    $ pip install -r requirements.txt

The packages need to be in a specific format for pip to understand, which is

    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.

From: stackoverflow.com/q/18966564

Back to homepage or read more recommendations: