为啥有些包可以在 Pip 中升级,而不是在 Conda 中? [复制]

Posted

技术标签:

【中文标题】为啥有些包可以在 Pip 中升级,而不是在 Conda 中? [复制]【英文标题】:Why some packages are upgradable in Pip, not in Conda? [duplicate]为什么有些包可以在 Pip 中升级,而不是在 Conda 中? [复制] 【发布时间】:2017-04-17 17:34:22 【问题描述】:

我在 Windows 10 下安装了 Anaconda。一切正常。我也跑了

conda upgrade --all

在命令提示符下。

但是,我注意到当我在命令提示符下键入以下内容时:

pip list -o

我得到(除其他外)

astroid (1.4.7) - Latest: 1.4.8 [wheel]

这意味着包 astroid 可以在 pip 下升级。但是,当我转到 Anaconda Navigator 并查看可升级包的列表时,我没有在其中看到 astroid。 (我无法找到查看哪些软件包可在 Conda 下升级的命令行方式)。

有人可以解释为什么astroid 在 Pip 下显示为可升级,而不是在 Conda 下显示为可升级吗?

【问题讨论】:

【参考方案1】:

package list maintained by Anaconda 与 PyPI 不同。 Anaconda 包列表中似乎还没有更新astroid

您可以等到 Anaconda 中的更新可用,也可以通过卸载 conda 版本并安装 pip 来temporarily use the version available via pip

conda remove astroid
pip install astroid

当 Anaconda 更新后,反转这两个命令以切换回来:

pip uninstall astroid
conda install astroid

【讨论】:

在网上的一些帖子中,我看到有两个点,一个来自 Anaconda,一个来自“原始”(或类似的东西)。如果我像你建议的那样输入pip install astroid,它会是“正确的”点吗? (对不起,如果这有点令人困惑,但我是初学者) @Soldalma pip 应该始终为您的 Conda 环境引用正确的可执行文件,因此您应该可以使用它。【参考方案2】:

Anaconda 似乎还没有更新 astroid - 他们的 package list 显示它仅适用于 v1.4.7(在顶部选项卡中选择 Python 3.5 和 Ctrl+F astroid,或查看 on this page )。但是,astroid 已经更新了 Pip 从中获取包的 PyPI 存储库,因此 v1.4.8 可以通过 Pip 而不是通过 Anaconda 获得。

至于为什么软件包没有升级 - 我不太确定。自发布以来已经有很多时间了,没有任何解释为什么他们不会升级,所以我真的说不出来。不过,如果您需要最新版本,通过 pip 安装应该没问题。

【讨论】:

我的猜测是抽象语法树对于典型的Anaconda 用户的需求并不是很重要,因此将其更新到最新版本的优先级较低。

以上是关于为啥有些包可以在 Pip 中升级,而不是在 Conda 中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥pip安装第三方库时总出现红色代码?

为啥用pycharm升级了pip,在命令框里面的pip还是旧版本

pip安装pandas而不升级pip

pip升级导致错误 多个pip导致明明已经安装了包但是报no module错误

如何使用 pip 升级所有 Python 包

为啥我对表格的媒体查询可以在 chrome 中使用,而不是在 firefox 中使用?