158

出力を比較すると、違いが明らかになります。

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 listより包括的なリストを生成するのpip freezeでしょうか?

4

8 に答える 8

130

を使用している場合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意味します (最新は 1.6.x ですが)。を指定しない場合、利用可能な最新バージョンがインストールされます。django1.4.2==1.4.2

詳細については、「Virtualenv and pip Basics」および公式の「Requirements File Format」ドキュメントを参照してください。

于 2013-09-23T18:49:47.350 に答える
54

この質問の 2 番目の部分に答えるために、示されているが示されてpip listいない2 つのパッケージpip freezesetuptools(easy_install) とpipそれ自体です。

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

ドキュメントから:

--all

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

于 2015-02-04T19:50:16.480 に答える
27

両方の機能を次のように説明しているpip documentationを見てください。

ピップリスト

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

ピップフリーズ

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

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

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

  2. 出力コンテンツには、含まれていないpip list編集可能なものが含まれます。pip freeze

于 2015-10-19T05:13:22.150 に答える
0

解決策をお探しの方へ。誤っての代わりに を使用pipして要件を作成し、pip のフリーズ形式に変換したい場合。そのために、この R スクリプトを作成しました。pip listpip freeze

library(tidyverse)

pip_list = read_lines("requirements.txt")

pip_freeze = pip_list %>%
  str_replace_all(" \\(", "==") %>%
  str_replace_all("\\)$", "")

pip_freeze %>% write_lines("requirements.txt")
于 2020-12-28T11:21:59.783 に答える