首页 > 解决方案 > 全新安装后 conda update --all 失败 (Anaconda3-2020.11-Linux-x86_64)

问题描述

我从Anaconda3-2020.11-Linux-x86_64.sh文件中重新安装了 Anaconda Python 。安装后立即运行conda update --all,但在“求解环境”阶段失败,如图所示:

$ conda update --all

Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done

Found conflicts! failed - \ 

UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment: 

Specifications: 
- conda-env -> python[version='2.7.*|3.4.*|3.5.*'] 
- navigator-updater -> python[version='2.7.*|3.5.*|3.6.*|3.4.*'] 

Your python: python=3.8 

之后,它列出了- defaults/*各种包,最终无法进一步。有人对这里可能发生的事情有见解吗?


康达信息

$ conda info

    active environment : None 
      user config file : /home/user/.condarc 
populated config files : 
         conda version : 4.9.2 
   conda-build version : 3.20.5 
        python version : 3.8.5.final.0 
      virtual packages : __glibc=2.17=0 
                         __unix=0=0  
                         __archspec=1=x86_64 
      base environment : /usr/local/anaconda38 
          channel URLs : repo.anaconda.com/pkgs/main/linux-64 
                         repo.anaconda.com/pkgs/main/noarch 
                         repo.anaconda.com/pkgs/r/linux-64 
                         repo.anaconda.com/pkgs/r/noarch 
         package cache : /usr/local/anaconda38/pkgs /home/user/.conda/pkgs 
      envs directories : /home/user/.conda/envs 
                         /usr/local/anaconda38/envs 
              platform : linux-64 
            user-agent : conda/4.9.2 requests/2.24.0 CPython/3.8.5 Linux/3.10.0-957.5.1.el7.x86_64 centos/7.6.1810 glibc/2.17 
               UID:GID : 722097580:1044000513 
            netrc file : None
          offline mode : False

标签: pythonanacondaconda

解决方案


可能的旧康达泄漏到环境中

冲突报告中的conda-env包的存在表明这不是一个全新的安装。具体来说,从 Conda v4.2.0(2016 年!)开始,该包已合并到主要condaPython 包中,因此不应再作为独立包存在。这可能是以前的 Conda 安装的遗物,或者可能是通过 安装的东西,可能pip是在用户控制杆上(即pip install --user)。

这也意味着其他一些 Python 安装或至少一个site-packages正在泄漏到环境中,这可能会干扰 Conda 的预期行为。正常的 Conda 环境功能假定环境完全隔离。

建议的分辨率

尝试确定conda-env软件包的安装位置并将其删除。可以获取 Python 从哪里采购包的列表

python -c 'import sys; print(sys.path)'

任何来自 Anaconda 3 安装之外的东西都会泄漏。此外,删除可能安装在用户级别(通常位于~/.local/lib/python*.*/site-packages)的任何其他包,因为如果存在匹配的 Python 版本,Python 将始终尝试从那里加载。在您的特定情况下,您想要检查 v3.8 子目录,但通常应该避免任何用户级包安装(请参阅在 Conda 环境中使用 Pip)。

另一个潜在的泄漏途径是通过PYTHONPATH. 确保未设置此项。


推荐阅读