用“点子”卸载软件包是否也删除相关软件包?
当你使用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
也是一个好的措施。 考虑依赖与已安装的其他软件包相交的场景。 你最好在每次新安装时冻结一个requirements.txt文件,并比较之前的requirements.txt版本以手动删除依赖项。