python 卸载带有“pip”的软件包是否也会删除依赖的软件包?

h9a6wy2h  于 2023-04-28  发布在  Python
关注(0)|答案(6)|浏览(427)

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

vd8tlhqk

vd8tlhqk1#

您可以安装并使用pip-autoremove实用程序来删除软件包和未使用的依赖项。

# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y
kmb7vmvb

kmb7vmvb2#

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

$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package

figleaf==0.6.1
鼻子==1.1.2
pinocchio==0.3
spectloud ==0。4.5

$ pip uninstall specloud
$ pip freeze

figleaf==0.6.1
鼻子==1.1.2
pinocchio==0.3
正如您所看到的,这些包是specloud的依赖项,它们仍然存在,但不是specloud包本身。
如下所述,您可以安装并使用pip-autoremove实用程序来删除软件包和未使用的依赖项。

f0brbegy

f0brbegy3#

我已经成功地使用bash行删除了一个包的依赖项:

for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done

这在PIP1上起作用。5.4

5lwkijsr

5lwkijsr4#

我已经找到了解决方案,尽管对一些人来说可能有点困难。
第一步(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

至少,这是对我有效的。..

erhoui1w

erhoui1w5#

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

x7rlezfr

x7rlezfr6#

一个简单的pipx。x uninstall module_name为我在RHEL7上卸载了一个Python包。是的,它也删除了所有的依赖。
ex:pip3.6卸载pandas

相关问题