使用pip
安装软件包时,所有必需的软件包也将随之安装(依赖项)。卸载该软件包是否也会删除依赖软件包?
答案 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
至少这对我有用...