pip:如何在卸载前查看谁需要模块?
pip: how to see who needs a module BEFORE uninstall?
有没有办法在卸载之前使用 pip 查看谁需要模块?怎么样?
这就是我问的原因:
在 RPM 包中:
- 每个包都列出了它自己的软件部门
- 当你去执行
yum remove NAME
yum 说 "PACKAGE_A, PACKAGE_B, ... each depend on NAME
" 然后 yum 会弹出一个交互式提示询问 "do you want to remove NAME and PACKAGE_A, PACKAGE_B, ..., yes or no?"
- yum 告诉我做
yum remove NAME
会破坏其他事情...所以我说 "no" 并重新考虑(或者说是,因为我想要 PACKAGE_A,PACKAGE_B, ..., 删除)
在PIP包地:
- 每个包都列出了它自己的软件部门
- 当你去做一个
pip uninstall botocore
pip 时说 "do you want to remove ${list_of_files_for_botocore_package}, yes or no?"
- 你说是因为你想删除 botocore
- 那么你害怕破坏东西所以你这样做了
- 点子检查
- 然后你看到"boto3 ... requires botocore, which is not installed"
- pip 卸载现在使一个或多个模块处于损坏状态
- 即使 pip 提前知道 boto3 需要 botocore...
- pip 可以像 yum 那样警告我或说些什么或主动提出删除 boto3
我想我可以写一些 python 代码来构造一个图...然后通过查看图找出谁需要 botocore...但我想知道...pip 已经有了吗已经有这样的功能了吗?似乎默认行为不太好(它至少应该打印一条消息)。
简而言之:没有
pip
看起来不像是开箱即用的反向依赖检查器。
pip
路线图看起来不会很快改变 uninstall
行为。
- 总的来说答案是:否
解决方法:您必须使用第三方解决方案,例如 pipdeptree
或 pipdep
- pipdeptree 带有
--reverse
选项
- deptree 具有
--reverse
特征
- 或copy/paste代码来自this SO question
确保在调用 pip uninstall
之前始终检查反向软件部门以查看是否会破坏任何东西。
你要的是pipenv。 Pipenv 负责安装您的软件包并通过几个简单的步骤设置您的虚拟环境。
要查看使用 pipenv 安装软件包时使用了什么,运行 终端中的命令
pipenv graph
你应该得到所有依赖项的树状列表
有没有办法在卸载之前使用 pip 查看谁需要模块?怎么样?
这就是我问的原因:
在 RPM 包中:
- 每个包都列出了它自己的软件部门
- 当你去执行
yum remove NAME
yum 说 "PACKAGE_A, PACKAGE_B, ... each depend onNAME
" 然后 yum 会弹出一个交互式提示询问 "do you want to remove NAME and PACKAGE_A, PACKAGE_B, ..., yes or no?" - yum 告诉我做
yum remove NAME
会破坏其他事情...所以我说 "no" 并重新考虑(或者说是,因为我想要 PACKAGE_A,PACKAGE_B, ..., 删除)
在PIP包地:
- 每个包都列出了它自己的软件部门
- 当你去做一个
pip uninstall botocore
pip 时说 "do you want to remove ${list_of_files_for_botocore_package}, yes or no?" - 你说是因为你想删除 botocore
- 那么你害怕破坏东西所以你这样做了
- 点子检查
- 然后你看到"boto3 ... requires botocore, which is not installed"
- pip 卸载现在使一个或多个模块处于损坏状态
- 即使 pip 提前知道 boto3 需要 botocore...
- pip 可以像 yum 那样警告我或说些什么或主动提出删除 boto3
我想我可以写一些 python 代码来构造一个图...然后通过查看图找出谁需要 botocore...但我想知道...pip 已经有了吗已经有这样的功能了吗?似乎默认行为不太好(它至少应该打印一条消息)。
简而言之:没有
pip
看起来不像是开箱即用的反向依赖检查器。pip
路线图看起来不会很快改变uninstall
行为。- 总的来说答案是:否
解决方法:您必须使用第三方解决方案,例如 pipdeptree
或 pipdep
- pipdeptree 带有
--reverse
选项 - deptree 具有
--reverse
特征 - 或copy/paste代码来自this SO question
确保在调用 pip uninstall
之前始终检查反向软件部门以查看是否会破坏任何东西。
你要的是pipenv。 Pipenv 负责安装您的软件包并通过几个简单的步骤设置您的虚拟环境。 要查看使用 pipenv 安装软件包时使用了什么,运行 终端中的命令
pipenv graph
你应该得到所有依赖项的树状列表