web-dev-qa-db-ja.com

「pip」を使用してパッケージをアンインストールすると、依存パッケージも削除されますか?

pipを使用してパッケージをインストールすると、必要なすべてのパッケージも一緒にインストールされます(依存関係)。そのパッケージをアンインストールすると、依存パッケージも削除されますか?

113
Hossein

いいえ、依存関係パッケージはアンインストールしません。

$ pip install specloud
$ pip freeze

figleaf == 0.6.1
nose == 1.1.2
ピノキオ== 0.3
specloud == 0.4.5

$ pip uninstall specloud
$ pip freeze

figleaf == 0.6.1
nose == 1.1.2
ピノキオ== 0.3

ご覧のとおり、すべてのパッケージはまだありますが、specloudパッケージ自体はありません。

65
BernardoFire

pip-autoremove ユーティリティをインストールして使用すると、パッケージと未使用の依存関係を削除できます。

# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y
175
bwv549

このbash行を使用して、パッケージの依存関係を正常に削除しました。

for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done

これはpip 1.5.4で機能しました

8
linibou

https://github.com/cls1991/pef を試してみてください。すべての依存関係を持つパッケージを削除します。

0
cls1991