Why does pip list
generate a more comprehensive list than pip freeze
?
JavaScript
x
6
1
$ pip list
2
feedparser (5.1.3)
3
pip (1.4.1)
4
setuptools (1.1.5)
5
wsgiref (0.1.2)
6
JavaScript
1
4
1
$ pip freeze
2
feedparser==5.1.3
3
wsgiref==0.1.2
4
Pip’s documentation states:
freeze | Output installed packages in requirements format. |
list | List installed packages. |
What is a “requirements format”?
Advertisement
Answer
One may generate a requirements.txt
via:
JavaScript
1
2
1
$ pip freeze > requirements.txt
2
A user can use this requirements.txt
file to install all the dependencies. For instance:
JavaScript
1
2
1
$ pip install -r requirements.txt
2
The packages need to be in a specific format for pip
to understand, such as:
JavaScript
1
6
1
# requirements.txt
2
feedparser==5.1.3
3
wsgiref==0.1.2
4
django==1.4.2
5
6
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.