ピップフリーズ対ピップリスト


110

出力を比較すると違いがわかります。

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

ピップのドキュメントの状態

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

しかし、「要件フォーマット」とpip listpip freeze何ですか。なぜより包括的なリストを生成するのですか?


5
参考までに、ここにドキュメントがあります。
alecxe 2013

回答:


108

を使用しているvirtualenv場合は、requirements.txtファイルを指定してすべての依存関係をインストールできます。

典型的な使用法:

$ pip install -r requirements.txt

パッケージpipを理解するには、特定の形式にする必要があります。

feedparser==5.1.3
wsgiref==0.1.2
django==1.4.2
...

それが「要件フォーマット」です。

ここでは、django==1.4.2インストールdjangoバージョンを意味し1.4.2ます(最新のバージョンは1.6.xです)。を指定しない場合==1.4.2、使用可能な最新バージョンがインストールされます。

詳細については、「Virtualenv and pip Basics」と公式の「Requirements File Format」ドキュメントをご覧ください。


5
とった。「リスト」が「フリーズ」よりも包括的なリストを作成する特別な理由はありますか?
nitrl 2013

2
私はそれがpip listすべてをリストし、pip freezepipによってインストールされたすべてをインストールするためだと思います。
karthikr 2013

うーん、それは理論ですが、私はそうしなかったとかなり確信していpip install wsgirefます。
nitrl 2013

Python 3.2はwsgiref.egg-infoLibディレクトリに含まれているため、pipはそれを認識しています。あなたはそれをpipで[アン]インストールすることはできません、そしてそれ以降のバージョンのPythonはメタデータファイルを省略して表示されないようにします。
Zooba

1
@leonid最後にバージョン番号を削除すると、pypiから最新バージョンがインストールされます。答えを完全に読む
karthikr 2017

42

この質問の後半部分に答えるために、2に示されたパッケージpip listはありませんがpip freezeあるsetuptools(easy_installをしている)、そしてpip自分自身。

pip freezepip自体が依存しているパッケージがリストされていないようです。--allフラグを使用して、それらのパッケージも表示できます。

ドキュメントから:

--all

出力でこれらのパッケージをスキップしないでください:pip、setuptools、distribute、wheel


3
pip freeze--all表示するオプションもあります:pip, setuptools, distribute, wheel pip.pypa.io/en/stable/reference/pip_freeze
Chananel P

配布が少ない
Max Kleiner、

37

主な違いは、の出力をpip freezerequirements.txtファイルにダンプして、後で「凍結」環境を再構築するために使用できることです。

言い換えれば、次のように実行できます。pip freeze > frozen-requirements.txtあるマシンで実行 してから、別のマシンまたはクリーンな環境で実行できます。 pip install -r frozen-requirements.txt そして、元の環境とまったく同じ依存関係がインストールされているのと同じ環境がインストールされます。 frozen-requirements.txtを生成しました。


26

両方の機能を次のように説明しているpipのドキュメントをご覧ください。

ピップリスト

インストールされているパッケージを、編集可能ファイルを含めて一覧表示します。

ピップフリーズ

インストールされたパッケージを要件形式で出力します。

したがって、2つの違いがあります。

  1. 出力形式は、freeze要件pip install -rをインストールするために後で使用できる標準の要件形式を提供します。

  2. 出力コンテンツ、pip list含まpip freezeない編集可能ファイルを含みます。


editablesとはどういう意味ですか?
Suryaa Jha


5

pip listすべてのパッケージを表示します。

pip freezeYOUがインストールしたパッケージpip(またはpipenvそのツールを使用している場合)を要件フォーマットで表示します。

仮想エンベロープを作成すると、setuptoolspipwheelがインストールされることに注意してくださいpipenv shell。これらのパッケージは私がインストールしたものではありませんpip

test1 % pipenv shell
Creating a virtualenv for this project
Pipfile: /Users/terrence/Development/Python/Projects/test1/Pipfile
Using /usr/local/Cellar/pipenv/2018.11.26_3/libexec/bin/python3.8 (3.8.1) to create virtualenv
 Creating virtual environment...
<SNIP>
Installing setuptools, pip, wheel...
done.
 Successfully created virtual environment! 
<SNIP>

今度は、cool-libsampleprojectpeppercornが依存している)のみをインストールしたそれぞれのコマンドの出力を確認して比較します。

test1 % pip freeze       <== Packages I'VE installed w/ pip

-e git+https://github.com/gdamjan/hello-world-python-package.git@10<snip>71#egg=cool_lib
peppercorn==0.6
sampleproject==1.3.1


test1 % pip list         <== All packages, incl. ones I've NOT installed w/ pip

Package       Version Location                                                                    
------------- ------- --------------------------------------------------------------------------
cool-lib      0.1  /Users/terrence/.local/share/virtualenvs/test1-y2Zgz1D2/src/cool-lib           <== Installed w/ `pip` command
peppercorn    0.6       <== Dependency of "sampleproject"
pip           20.0.2  
sampleproject 1.3.1     <== Installed w/ `pip` command
setuptools    45.1.0  
wheel         0.34.2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.