当您使用pip
安装软件包时,所有必需的软件包也将随之安装(依赖项)。卸载该包还会删除依赖包吗?
不,它不会卸载依赖项包:
$ 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
软件包本身并不存在。
您可以安装和使用pip-autoremove实用程序来删除程序包以及未使用的依赖项。
# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y
我已使用此bash行成功删除了包的依赖项:
for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done
这适用于点子1.5.4
你可以试试https://github.com/cls1991/pef。它将删除包含其所有依赖项的包。