问题:使用“ pip”卸载软件包还会删除相关软件包吗?
当您pip
用来安装软件包时,所有必需的软件包也会随之安装(依赖关系)。卸载该软件包还会删除从属软件包吗?
回答 0
不,它不会卸载依赖包。它仅删除指定的软件包:
$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package
figleaf == 0.6.1
鼻子== 1.1.2
pinocchio == 0.3
specloud == 0.4.5
$ pip uninstall specloud
$ pip freeze
figleaf == 0.6.1
鼻子== 1.1.2
匹诺曹== 0.3
如您所见,这些程序包是来自的依赖项specloud
,它们仍然存在,但不是specloud
程序包本身。
如下所述,您可以安装并使用pip-autoremove实用程序删除软件包以及未使用的依赖项。
回答 1
您可以安装并使用pip-autoremove实用程序删除软件包以及未使用的依赖项。
# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y
回答 2
我已经使用以下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
我发现了解决方案,尽管对于某些人来说可能有点困难。
第一步(适用于python3和linux):
pip3 install pip-autoremove
第二步:
cd /home/usernamegoeshere/.local/bin/
第三步:
gedit /home/usernamegoeshere/.local/lib/python3.8/site-packages/ pip_autoremove.py
并将所有pip更改为pip3第四步:./ pip-autoremove packagenamegoeshere
至少,这是对我有用的…
回答 4
您可以尝试使用https://github.com/cls1991/pef。它将删除软件包及其所有依赖项。