【发布时间】:2018-09-01 00:02:57
【问题描述】:
我将列出所有仅在 anaconda 中使用 pip 安装的过时 python 包。不会显示 Conda 包。
如果我运行pip list --outdated,则会显示所有过时的包,包括 pip 和 conda。我只想显示过时的 pip 包。
我在 Windows 10 上使用 anaconda python v3.6 64 位。
【问题讨论】:
我将列出所有仅在 anaconda 中使用 pip 安装的过时 python 包。不会显示 Conda 包。
如果我运行pip list --outdated,则会显示所有过时的包,包括 pip 和 conda。我只想显示过时的 pip 包。
我在 Windows 10 上使用 anaconda python v3.6 64 位。
【问题讨论】:
答案不正确: “pip list --outdated”将返回所有过时的包,包括由 conda 安装的包,即使你刚刚做了“conda update --all”。这是因为将包从“pip”存储库传播到“conda”存储库存在一些延迟。一般来说,不建议通过 pip 更新 conda 安装的软件包(除非您真的需要它并且知道自己在做什么,但最好还是等几周)。
与“conda list”相同 - 它会报告所有已安装的软件包。通道名称“pypi”可能表示包是由“pip”安装的,但它没有必要可靠,因为您可以在pip中使用其他通道,并在conda中使用“Pypi”通道。
回到点子。理论上,“pip list [--outdated]”中有可用的选项“-v”。它将提供附加列“安装程序”,其中包含 pip/conda 文本。实际上,这些信息完全无关紧要,因为 conda 随机放置“pip”或“conda”。
我确实在 github/pip 中创建了问题。在那里查看更多细节。简而言之:没有人想以正确的方式解决它,所以我必须使用自己不完美的解决方法来为自己解决这个问题。 https://github.com/pypa/pip/issues/8415
【讨论】:
您可以在以下各项之间设置差异:
通过以下方式获得的所有所有 pip 过时的包:
$ pip list --outdated
所有 conda 安装的包都是通过以下方式获得的:
$ conda list
这将从pip list --outdated返回的列表中删除之前使用 conda 安装的过时软件包,为您提供通过 pip 安装的过时软件包列表。
【讨论】: