pip パッケージの依存関係ツリーを表示する方法はありますか? 質問する

pip パッケージの依存関係ツリーを表示する方法はありますか? 質問する

複数のパッケージ依存関係を持つプロジェクトがあり、主な要件は にリストされています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

そして、これらを現在の に挿入します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 パッケージの依存関係を表示する方法はありますか?

ベストアンサー1

ぜひ見てみてください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 コード) は、必要に応じて比較的簡単に変更できるはずです。または、代わりに (pipdeptree 0.3 README で @MERose が指示しているように) 以下を使用することもできます。

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

の 0.5 バージョンでpipdeptreeは、オプションを使用して JSON 出力も可能になりました。このオプションを使用--jsonすると、読みにくくなる代わりに、機械による解析が容易になります。

おすすめ記事