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

时间:2011-10-27 12:45:57

标签: python packages pip

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

5 个答案:

答案 0 :(得分:159)

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

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

答案 1 :(得分: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软件包本身。

答案 2 :(得分:8)

我已使用此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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我发现了解决方案,尽管对于某些人来说可能有点困难。

第一步(适用于python3和linux):
pip3安装pip-autoremove
第二步:
cd /home/usernamegoeshere/.local/bin/
第三步:
gedit /home/usernamegoeshere/.local/lib/python3.8/site-packages/pip_autoremove.py
并将所有pip更改为pip3 第四步: ./pip-autoremove packagenamegoeshere

至少这对我有用...