129

複数のパッケージ依存関係を持つプロジェクトがあり、主な要件は にリストされていrequirements.txtます。呼び出すpip freezeと、現在インストールされているパッケージがプレーンなリストとして出力されます。次のような依存関係も取得したいと思います。

Flask==0.9
    Jinja2==2.7
    Werkzeug==0.8.3

Jinja2==2.7

Werkzeug==0.8.3

Flask-Admin==1.0.6
    Flask==0.9
    Jinja2==2.7
    Werkzeug==0.8.3

目標は、特定の各パッケージの依存関係を検出することです。

Werkzeug==0.8.3
    Flask==0.9
    Flask-Admin==1.0.6

そして、これらを私の current に挿入しrequirements.txtます。たとえば、次の入力の場合:

Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3

私は取得したい:

Flask==0.9
    Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3

インストールされている pip パッケージの依存関係を表示する方法はありますか?

4

3 に答える 3

193

あなたは見てみる必要がありますpipdeptree

$ pip install pipdeptree
$ pipdeptree -fl
Warning!!! Cyclic dependencies found:
------------------------------------------------------------------------
xlwt==0.7.5
ruamel.ext.rtf==0.1.1
xlrd==0.9.3
openpyxl==2.0.4
  - jdcal==1.0
pymongo==2.7.1
reportlab==3.1.8
  - Pillow==2.5.1
  - pip
  - setuptools

requirements.txtあなたが直接示したように、ファイルを生成しません。ただし、ソース (255 行の Python コード) は、必要に応じて比較的簡単に変更できます。または、代わりに ( @MERose が pipdeptree 0.3 README に示されているように) 使用することもできます。

pipdeptree --freeze  --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt

の 0.5 バージョンではpipdeptree、オプションを使用して JSON 出力を行うこともできます--json。これは、読みにくくなるという代償を払って、より簡単に機械で解析できます。

于 2014-07-23T06:10:38.377 に答える
13

警告: py2 のみ/放棄ウェア

yolkパッケージの依存関係を表示できます。

  • 経由でインストールされましたsetuptools
  • 依存関係情報を含むメタデータが付属

    $ yolk -d Theano
    Theano 0.6.0rc3
      scipy>=0.7.2
      numpy>=1.5.0
    
于 2013-06-20T00:52:26.617 に答える
3

pipdeptreeパッケージをインストールすることで実行できます。

プロジェクト フォルダーでコマンド プロンプトを開きます。仮想環境を使用している場合は、その仮想環境に切り替えます。

pipdeptreepip を使用してパッケージをインストールする

pip install pipdeptree
pipdeptree -fl

このパッケージには、プロジェクトのすべての依存関係が一覧表示されます。

もっとpipdeptreeのために

ここに画像の説明を入力

于 2021-08-04T15:57:51.980 に答える