テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

不要なPythonライブラリを一括で削除するワンライナー

誤ってグローバル環境など別の環境にライブラリをインストールしたとき、依存関係でインストールされるものもあるので一つづつ削除するのは面倒です。

そこで、次のコマンドで一括で削除できます。

pip list --format json | jq '.[] | select((contains({name: "pip"}) | not) and (contains({name: "setuptools"}) | not)) | .name' | xargs pip uninstall -y

詳細

1. JSON形式でライブラリ一覧を表示

pip list --format json
[{"name": "flake8", "version": "3.8.4"}, {"name": "mccabe", "version": "0.6.1"}, {"name": "pip", "version": "20.2.4"}, {"name": "pycodestyle", "version": "2.6.0"}, {"name": "pyflakes", "version": "2.2.0"}, {"name": "setuptools", "version": "49.2.1"}]

2. アンインストールするライブラリ名を取得

jqpipsetuptoolsを除きライブラリ名だけを表示します。

jq '.[] | select((contains({name: "pip"}) | not) and (contains({name: "setuptools"}) | not)) | .name' 
"flake8"
"mccabe"
"pycodestyle"
"pyflakes"

3. アンインストール

xargs pip uninstall -y