例如,我可能已经安装了pkg1,它需要pkg2 和pkg3。我安装的其他软件包都不需要这两个。那么,在 pip uninstall pkg1 期间或之后,我怎样才能使 pip uninstall pkg2 和 pkg3?
请您参考如下方法:
pip 中没有简单的内置命令或标志来执行此操作,但在卸载 pkg1 之前,您可以确定依赖项:
$ pip show pkg1 | grep Requires
您可以通过一些 bash fu 快速获得包要求的摘要:
$ for P in $(pip list | awk '{print $1}') ; do echo -n $P::' '; pip show $P | grep Requires ; done
然后对于第一个命令显示的任何包(pkg2 和 pkg3),如果它们在第二个命令中没有显示为任何其他包的依赖项,您可以显式地pip uninstall那些作为好吧。
您还可以找到所有不依赖于任何其他包的包:
$ cat <(pip show $(pip list | awk '{print $1}') | grep Requires | sed -e s/Requires:// -e s/,//g | xargs -n 1) <(pip list | awk '{print $1}') | sort | uniq -u
