Python 3.5 更新失败后 Anaconda 根环境不一致

Posted

技术标签:

【中文标题】Python 3.5 更新失败后 Anaconda 根环境不一致【英文标题】:Inconsistent Anaconda root env after failed Python 3.5 update 【发布时间】:2016-07-07 04:03:18 【问题描述】:

我最近尝试使用命令将我的 Anaconda 安装的根环境从 Python 3.4 更新到 Python 3.5

conda install python=3.5

做完之后,我跑了

conda update --all python=3.5

希望它将所有其他包更新到 Python 3.5 版本,但它失败并显示以下错误消息:(请注意,我在此列表中间省略了许多包)

The following specifications were found to be in conflict:
  - backports_abc -> python 2.7*|3.4*
  - certifi -> python 2.7*|3.4*
  - colorama -> python 2.7*|3.4*|3.5*
  - conda -> python 2.7*|3.4*|3.5*
  - conda-env -> python 2.7*|3.4*
  - decorator -> python 2.7*|3.4*
  - django -> python 2.7*|3.4*
  - ecdsa -> python 2.7*|3.4*
  - flask -> python 2.7*|3.4*
  - greenlet -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - ipykernel -> python 2.7*|3.4*

[...many more...] 

  - simplegeneric -> python 2.7*|3.4*|3.5*
  - six -> python 2.7*|3.4*
  - werkzeug -> python 2.7*|3.4*
  - wheel -> python 2.7*|3.4*
Use "conda info <package>" to see the dependencies for each package.

看来我现在搞砸了我的根环境。我只想卸载里面的所有包,但是命令

conda uninstall --all

只是抱怨:

Error: cannot remove current environment. deactivate and run conda remove again

(当然我不能停用我的环境,因为我已经在根环境中了。)

那么,有没有什么方法可以轻松清理根环境呢?或者,有没有办法正确更新 Python 3.5 的所有包?

编辑(2016 年 5 月 10 日)

我最初忘记提及我正在运行的系统是 Mac OS X 10.11 (El Capitan)。

【问题讨论】:

【参考方案1】:

只需关注these steps 进行全新安装:

首先,删除本地 anaconda:sudo rm -rf anaconda

然后,从here重新安装

【讨论】:

Matt 提出的解决方案不起作用。这里的问题是新的 Anaconda 对依赖项更加严格。因此conda update --all 将尝试修复依赖关系树。最好的方法是删除所有内容并重新安装 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效 我最初希望得到一个答案,告诉我如何修复我的安装,而不仅仅是重新安装。但根据您的评论和其他答案,重新安装似乎是唯一的选择。哦,好吧! 感谢您的评论,@Ms.Nehal。答案的基本部分已经包含在此处,因为答案很简单。只有两个步骤:卸载和重新安装。并且对于重新安装步骤,需要下载一个安装程序文件,该文件必须是一个链接【参考方案2】:

阅读this thread后,我发现了这个有用的信息:

Conda 4.0 在确保环境具有一致的依赖关系方面更加谨慎。如果有大量一次性安装和更新,以前版本的 conda 实际上可能会使环境处于损坏状态。

副作用是我们可能会看到像您这样的支持请求增加,conda 正在做一些令人惊讶的事情,因为它会逐渐纠正损坏的环境。

因此,我决定进行全新安装,最终解决了我的问题:

    删除 conda 和 anaconda

    1.1 停用任何活动环境

    conda info --envs

    source deactivate

    1.2 手动删除包含包和代码的文件夹

    sudo rm -rf anaconda/

    sudo rm -rf conda/

    安装 conda 和 Anaconda (MiniConda)

    3.1 下载installer并按照说明安装。

    3.2 确保正确的环境变量(可选)。在 .bash_profile 中添加这一行 export PATH=$HOME/anaconda/bin:$PATH。然后运行source .bash_profile 使更改生效。与which pythonwhich pip 确认您的python 由anaconda 管理。

    安装你的包

    4.1 使用condapip 应该可以工作source

    4.2 更新和清理:

    conda update --all python=3.5

    conda clean --all

    4.2 检查一切是否正确:

    conda info

    conda list

【讨论】:

【参考方案3】:

啊,我正在编辑,因为我不知道你有 Mac。试试这些行,看看会发生什么:

conda update conda conda update conda python=3.5 conda update anaconda

我知道你已经运行了中间部分,但其他人说这个序列将根设置回 3.5。

【讨论】:

我忘了在我的问题中提到我正在运行的系统是 Mac。 (对此感到抱歉!)我已编辑问题以反映此信息。我也有基于 Python 3.5 的环境,所以它们确实可以工作,但我只是希望有一种方法可以在不重新安装的情况下升级根环境。 @jb326 试试上面的。 前两个命令没有做任何事情,因为 condapython 已经是最新版本(分别为 4.0.5 和 3.5.1)。最后一个失败,因为我没有安装 anaconda 元包。 (我最初安装的是 Miniconda 而不是完整的发行版。)这似乎表明虽然 pythonconda 很好,但其他软件包在某种程度上彼此不兼容。 啊,是的,我也在运行 Miniconda 并将其移至 Anaconda3 目录(它仍然有效)。您可能需要像他们在这里所做的那样:wolfpaulus.com/journal/mac/installing_python_osx 祝你好运,希望你能找到有 Mac 的人,因为我没有 Mac,希望这个链接对你有帮助。

以上是关于Python 3.5 更新失败后 Anaconda 根环境不一致的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.5、OpenCV 3.2、Windows 7 64 位、Anaconda 3、“ImportError:DLL 加载失败”

Spyder 的 Anaconda 更新失败

在 Windows 上使用 Python 3.5 Anaconda 的底图

python集成安装环境——Anaconda 3.5的安装

PySide 可以与 Anaconda Python 3.5 一起使用吗?

无法使用最新下载的 Anaconda 创建新的 python 3.5 环境