卸载带有“pip”的软件包是否也会删除依赖软件包?

问题描述 投票:98回答:4

当您使用pip安装软件包时,所有必需的软件包也将随之安装(依赖项)。卸载该包还会删除依赖包吗?

python packages pip
4个回答
59
投票

不,它不会卸载依赖项包:

$ pip install specloud
$ pip freeze

云南黑籽== 0.6.1 鼻子== 1.1.2 匹诺曹== 0.3 specloud == 0.4.5

$ pip uninstall specloud
$ pip freeze

云南黑籽== 0.6.1 鼻子== 1.1.2 匹诺曹== 0.3

正如你所看到的,所有的软件包仍然存在,但specloud软件包本身并不存在。


158
投票

您可以安装和使用pip-autoremove实用程序来删除程序包以及未使用的依赖项。

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

7
投票

我已使用此bash行成功删除了包的依赖项:

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

这适用于点子1.5.4


0
投票

你可以试试https://github.com/cls1991/pef。它将删除包含其所有依赖项的包。

© www.soinside.com 2019 - 2024. All rights reserved.