当您使用pip
安装软件包时,所有必需的软件包也将随它一起安装(依赖项)。卸载该软件包是否也会删除相关软件包?使用“pip”卸载软件包是否也删除相关软件包?
回答
不,不卸载的依赖包:
$ pip install specloud
$ pip freeze
云南黑籽== 0.6.1
鼻子== 1.1.2
木偶奇遇记== 0.3
specloud == 0.4 0.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
这个工作对PIP 1.5.4
尽管从技术上讲,这个解决方案*成功地删除了所有的依赖关系,正如其他答案中提到的那样,它*还*卸载了对目标**不唯一的依赖项,包括从系统包安装的依赖项。例如,在我的系统上,这个脚本最终失败了,因为目标包与pip有相关的依赖关系,所以pip在脚本完成之前卸载了它自己的依赖关系,然后失败了。 – sinisterstuf
也在'8.1.2'上工作。 – vyscond
请注意,这只会删除**下一级别的依赖关系,但**不会**这些依赖关系的依赖关系。 – tamakisquare
和良好的措施了。考虑依赖与您安装的其他软件包相交的场景。每次新安装时,最好将其冻结为一个requirements.txt文件,并比较以前版本的requirements.txt以手动删除依赖项。
您可能试过https://github.com/cls1991/pef。 它将删除其所有依赖关系的包。
- 1. pip试图卸载系统软件包
- 2. Python Pip卸载多个软件包
- 3. Openshift pip卸载旧软件包版本
- 4. Linux:TRULY卸载软件包?
- 5. 无法卸载软件包
- 6. 删除软件包
- 7. 如何使用Monkeyrunner卸载软件包?
- 8. 如何使用puppet卸载软件包
- 9. 使用厨师卸载软件包
- 10. 使用pip3卸载Python软件包
- 11. python使用pip软件包不同于默认的软件包
- 12. 如何卸载从* .txt文件安装的pip软件包?
- 13. 如何在手动删除pip软件包后删除它
- 14. 从我的WiX Burn软件包中删除/卸载特定软件包的正确方法是什么?
- 15. 删除RPM软件包
- 16. pip没有下载任何软件包
- 17. 如何从homebrew,distribute,macports,pip中卸载所有软件包?
- 18. PIP冻结名单上卸载的软件包
- 19. Visual Studio 2015从wwwroot中删除卸载的bower软件包?
- 20. 安装软件包安装是否也更新已安装的软件包
- 21. PIP卸载显示软件包已卸载,但实际上并非如此
- 22. 在Mac OS X中卸载软件包
- 23. 卸载系统软件包cryptsetup
- 24. 在DELPHI XE2中卸载软件包
- 25. 无法卸载virtualenv中的软件包
- 26. 如何在Pycharm中卸载软件包
- 27. 如何卸载系统软件包?
- 28. 巧克力卸载软件包
- 29. Debian软件包卸载过程
- 30. python卸载和更新软件包
你为什么不试试看看?我会尽力回答你的问题,但由于某些原因,现在pip无法在这里获得包索引。 –
@ThomasVanderStichele因为那么答案将不会在网上提供给未来的Google员工:) – Mark
我在[pip新闻组]中找到了答案(https://groups.google.com/d/topic/python-virtualenv/JqIbyUDy2-E/讨论)小人们不希望这种功能,至少现在。多么可怜! –