为啥有些包可以在 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 中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥用pycharm升级了pip,在命令框里面的pip还是旧版本