对产出的比较揭示了差异:
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的文档状态
freeze Output installed packages in requirements format.
list List installed packages.
但是什么是“需求格式”,为什么pip list
会生成比pip freeze
更全面的列表?
主要的区别是
pip freeze
的输出可以转储到requirements.txt文件中,然后用于重新构建“冻结”环境。换句话说,您可以运行:
pip freeze > frozen-requirements.txt
在一台计算机上,然后在另一台计算机上,或者在干净的环境中,您可以执行以下操作:pip install -r frozen-requirements.txt
您将得到一个完全相同的环境,其中安装的依赖项与您在生成frozen-requirements.txt的原始环境中安装的依赖项完全相同。为了回答这个问题的第二部分,在
pip list
而不是pip freeze
中显示的两个包是setuptools
(很容易安装)和pip
本身。看起来
pip freeze
只是没有列出pip本身所依赖的包。您可以使用--all
标志同时显示这些包。来自the documentation:
使用
virtualenv
时,可以指定requirements.txt
文件来安装所有依赖项。典型用法:
要理解这些包,需要使用特定的格式
pip
,即这就是“需求格式”。
这里,
django==1.4.2
表示安装django
版本1.4.2
(即使最新版本是1.6.x)。 如果不指定==1.4.2
,则将安装可用的最新版本。您可以在“Virtualenv and pip Basics”中阅读更多内容, 以及官方的“Requirements File Format”文档。
相关问题 更多 >
编程相关推荐