卸载带有“pip"还要删除依赖的包吗?

当你使用pip来安装一个包时,所有必需的包也会随它一起安装(依赖)。卸载该包是否也会删除依赖的包?

207074 次浏览

不,它不会卸载依赖包。它只删除指定的包:

$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package
< p >遮羞布= = 0.6.1
鼻子= = 1.1.2
匹诺曹= = 0.3
specloud = = 0.4.5 < / p >
$ pip uninstall specloud
$ pip freeze
< p >遮羞布= = 0.6.1
鼻子= = 1.1.2
匹诺曹= = 0.3 < / p >

正如你所看到的,这些包是specloud的依赖项,它们仍然存在,但不是specloud包本身。

如下面所述,您可以安装并使用pip-autoremove实用程序来删除包和未使用的依赖项。

您可以安装并使用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

这在PIP 1.5.4上有效

你可以试试https://github.com/cls1991/pef。 它将移除包及其所有依赖项

我已经找到了解决方案,尽管对一些人来说可能有点困难。

第一步(对于python3和linux):

pip3 install pip-autoremove

步骤2:

cd /home/usernamegoeshere/.local/bin/

第三步:

gedit /home/usernamegoeshere/.local/lib/python3.8/site-packages/pip_autoremove.py

,将所有pip(s)改为pip3
第四步:< / p >

./pip-autoremove packagenamegoeshere

至少,这对我有用……