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.