web-dev-qa-db-ja.com

インストールされているpipパッケージのサイズを確認するにはどうすればよいですか?

これが可能かどうかはわかりません。グーグルには答えがないようです。

Linux Debianを実行すると、インストールされているすべてのpipパッケージとサイズ(使用されているディスク容量)を一覧表示できますか?

つまり、すべてのpipパッケージをディスク上のサイズとともにリストしますか?

14
Prometheus

パッケージサイトにアクセスして、サイズを確認します。 https://pypi.python.org/pypi/pip/json

2
JMzance

これを試してください(少し長いですが、より良い解決策があるかもしれません):

$ pip list | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{print $2 "/" tolower($1)}' | xargs du -sh 2> /dev/null

出力は次のようになります。

80K     /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/blinker
3.8M    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/docutils
296K    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/ecdsa
340K    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/execnet
564K    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/fabric
1.4M    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/flask
316K    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/httplib2
1.9M    /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages/jinja2
...

パッケージがLocation/Nameにインストールされている場合に機能します。 (場所と名前はpip show <package>のものです)


pip show <package>は場所を表示します:

---
Metadata-Version: 2.0
Name: Flask
Version: 0.10.1
Summary: A microframework based on Werkzeug, Jinja2 and good intentions
Home-page: http://github.com/mitsuhiko/flask/
Author: Armin Ronacher
Author-email: [email protected]
License: BSD
Location: /home/lord63/.pyenv/versions/2.7.11/envs/py2/lib/python2.7/site-packages
Requires: itsdangerous, Werkzeug, Jinja2

NameLocationを取得してそれらを結合して場所を取得し、最後にdu -shを使用してパッケージサイズを取得します。

17
lord63. j

新しいピップリスト形式の新しいバージョン:

pip2 list --format freeze|awk -F = {'print $1'}| xargs pip2 show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{print $2 "/" tolower($1)}' | xargs du -sh 2> /dev/null|sort -h
9
Petr Mach

履歴:

現在、その目的のために開発されたコマンドやアプリケーションはありません。手動で確認する必要があります

手動による方法I:

du /usr/lib/python3.5/ --max-depth=2 | sort -h
du /usr/lib64/python3.5/ --max-depth=2 | sort -h

これには、そのディレクトリからインストールされたパッケージ/ファイルは含まれません。したがって、これらの2つのsimplesコマンドで95%が取得されると述べています。

また、他のバージョンのpythonがインストールされている場合は、ディレクトリを調整する必要があります

手動による方法II:

pip list | sed '/Package/d' | sed '/----/d' | sed -r 's/\S+//2' | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{print $2 "/" $(find $2 -maxdepth 1 -iname $1)}' | xargs du -sh  | sort -h

大文字と小文字を区別しないパッケージ名でインストールディレクトリを検索します

手動の方法II代替I:

pip list | sed '/Package/d' | sed '/----/d' | sed -r 's/\S+//2' | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - -| awk '{print $2 "/" tolower($1)}' | xargs du -sh | sort -h

小文字でパッケージ名を指定してインストールディレクトリを検索します

手動による方法II代替II:

pip list | sed '/Package/d' | sed '/----/d' | sed -r 's/\S+//2' | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - -| awk '{print $2 "/" $1}' | xargs du -sh | sort -h

パッケージ名でインストールディレクトリを検索します

注:

すべての方法IIでは、du: cannot accessで始まる行を手動でチェックする必要があります。コマンドは、インストールディレクトリにパッケージの名前を追加しますが、名前がパッケージ名と異なる場合があります。ディレクトリの場合...少なくとも、これを行うアプリケーションを開発しようとする人にとって、これは良い出発点になるでしょう。

シンプルにする:

  • 次に最初の方法を使用します
  • 2番目の方法を使用し、pythonクラシックディレクトリの外で手動でパッケージを確認する
1
intika

上記のpipバージョン18以上に変更:

pip list | tail -n +3 | awk '{print $1}' | xargs pip show | grep -E 'Location:|Name:' | cut -d ' ' -f 2 | paste -d ' ' - - | awk '{print $2 "/" tolower($1)}' | xargs du -sh 2> /dev/null | sort -hr

このコマンドは、サイズの降順でソートされたpipパッケージを表示します。

0
jerrymouse