Python 为什么有些软件包可以在Pip中升级,而不是在Conda中?

Python 为什么有些软件包可以在Pip中升级,而不是在Conda中?,python,pip,conda,Python,Pip,Conda,我在Windows 10下安装了Anaconda。一切正常。我也跑了 conda upgrade --all 在命令提示符中 但是,我注意到,当我在命令提示符中键入此命令时: pip list -o 我得到了很多东西 astroid (1.4.7) - Latest: 1.4.8 [wheel] 这意味着软件包astroid可以在pip下升级。然而,当我去Anaconda Navigator查看可升级软件包列表时,我并没有在其中看到astroid。我无法找到命令行方式来查看哪些包在Cond

我在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下显示为不可升级吗?

看起来Anaconda还没有更新astroid-他们显示它仅适用于v1.4.7,在顶部选项卡中选择Python 3.5并按Ctrl+F astroid或look。然而,astroid已经更新了Pip获取包的存储库,因此v1.4.8可以通过Pip而不是Anaconda获得

至于为什么软件包没有升级,我不太清楚。自从发布以来已经有很多时间了,没有解释为什么他们不升级,所以我真的不知道。但是,如果需要最新版本,则可以通过pip安装。

与的不同。似乎在水蟒包裹清单中还没有更新

您可以等待更新在Anaconda中可用,也可以通过卸载conda版本并安装pip one:

conda remove astroid
pip install astroid
Anaconda更新后,反转这两个命令以切换回:

pip uninstall astroid
conda install astroid

我的猜测是,抽象语法树对于典型的Anaconda用户的需求不是很重要,因此更新到最新版本的优先级较低。在web上的一些帖子中,我看到有两个PIP,一个来自Anaconda,另一个来自原始版本或类似的东西。如果我只是像你建议的那样键入pip安装astroid,它会是正确的pip吗?抱歉,如果这有点混乱,但我是一个beginner@Soldalmapip应该始终为您的Conda环境引用正确的可执行文件,因此您应该可以使用它。