pipで入れたパッケージがとっちらかってきたので、不要なものを消したいなーと思っていました。しかし、pipの場合インストールは依存関係を考慮してよしなにやってくれるものの、アンインストール時には指定したパッケージしか消してくれない。

(ちゃんとpyenvなりAnacondaなりで環境整理しろよと言われればそれまでなのですが)

で、ググってみたら便利なものがあるのを見つけました。

pip-autoremove

pip-autoremoveというモジュールを使うと、アンインストール指定したパッケージが依存しているものも一緒に消してくれるとのこと。

インストール

$ pip install pip-autoremove

使い方例

% pip-autoremove pyobjc
pyobjc 6.2.2 (/Users/yoshikiito/.pyenv/versions/3.8.2/lib/python3.8/site-packages)
    pyobjc-framework-MapKit 6.2.2 (/Users/yoshikiito/.pyenv/versions/3.8.2/lib/python3.8/site-packages)
(中略)
    pyobjc-framework-SecurityInterface 6.2.2 (/Users/yoshikiito/.pyenv/versions/3.8.2/lib/python3.8/site-packages)
Uninstall (y/N)?y
Found existing installation: pyobjc-framework-StoreKit 6.2.2
Uninstalling pyobjc-framework-StoreKit-6.2.2:
(中略)
Uninstalling pyobjc-framework-ExceptionHandling-6.2.2:
  Successfully uninstalled pyobjc-framework-ExceptionHandling-6.2.2
%

参考