环境不一致,请仔细检查包装图

Ang*_*zar 102 shell cmd anaconda conda

我试图从anaconda更新或安装新软件包,最近,此消息出现了:

The environment is inconsistent, please check the package plan carefully
The following package are causing the inconsistency:

   - defaults/win-32::anaconda==5.3.1=py37_0

done
Run Code Online (Sandbox Code Playgroud)

我尝试过conda clean --all,然后conda update --all仍然存在。

康达资讯

active environment : base
    active env location : C:\Users\NAME\Continuum
            shell level : 1
       user config file : C:\Users\NAME\.condarc
 populated config files : C:\Users\NAME\.condarc
          conda version : 4.6.11
    conda-build version : 3.17.7
         python version : 3.7.3.final.0
       base environment : C:\Users\NAME\Continuum  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-32
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/win-32
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/win-32
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-32
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\NAME\Continuum\pkgs
                          C:\Users\NAME\.conda\pkgs
                          C:\Users\NAME\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\NAME\Continuum\envs
                          C:\Users\NAME\.conda\envs
                          C:\Users\NAME\AppData\Local\conda\conda\envs
               platform : win-32
             user-agent : conda/4.6.11 requests/2.21.0 CPython/3.7.3 Windows/10 Windows/10.0.17763
          administrator : False
             netrc file : None
           offline mode : False
Run Code Online (Sandbox Code Playgroud)

mm4*_*307 60

我曾经遇到过同样的问题。只需运行

conda install anaconda
Run Code Online (Sandbox Code Playgroud)

为我解决了问题。

  • `conda update --all`为我解决了 (8认同)
  • 对我来说,解决方案分两个步骤:首先,`conda install anaconda`,它刚安装了anaconda软件包并删除了一个conda软件包,并更新了一些依赖项。然后我用`conda update --all`跟着,一切都很好!我的系统是Ubuntu 18.04,更新了spyder软件包后遇到了这个问题,这也导致了conda本身的更新,这导致了不一致。 (5认同)
  • `conda install anaconda` 也对我有用,尽管我不得不等待 5 分钟以上 conda 提出打包计划。 (4认同)
  • 我收到了 `conda update --all` 的错误,所以它没有解决问题(在某些情况下),但是 `conda install` 似乎可以工作(并更新列表中的其他包) (3认同)
  • 我也有同样的问题,我按照你的建议做了。但我仍然遇到不一致的情况。我运行的是 osx-64,你也运行 osx 吗? (2认同)
  • 在“conda update anaconda”之前先尝试“conda update conda”。前者可能会以最少的安装/升级/降级需求来解决您的问题,并且仅更新 [ana,mini]conda 系统及其依赖项需求本身,而不是整个 anaconda3。此外,如果您也决定这样做,那么首先运行前者可能会使后者工作更有效。 (2认同)
  • 对于那些使用“miniconda”的人,如果您不想安装“anaconda”,请参阅@Jack Kelly'答案。(激活导致问题的环境,然后“conda install conda --force-reinstall”两次(是的两次),然后“conda update --all”),并且不要忘记向 @Jack Kelly' 答案添加 +1 如果它有帮助;-)。 (2认同)

小智 49

Google网上论坛上看到了

此消息是在conda 4.6.9中添加的,以前,除非conda在调试模式下运行,否则没有任何迹象表明conda检测到不一致的环境。一段时间以来,您的环境可能不一致,但是升级到conda使其可见。最好的选择是对不一致的软件包运行“ conda install package_name”,以使conda尝试恢复一致性。

它确实对我有用。

也许您应该conda install anaconda根据自己的情况尝试。

  • 对于我的所有conda环境而言,不一致的环境都是一个令人困扰的问题,`conda install anaconda`并没有解决这一问题。我需要做的就是:重新安装每个单独调用的软件包。谢谢! (7认同)
  • 很好的答案 - 非常高兴能够解释为什么会发生这种情况以及(至少对我来说)完美运行的简洁修复。 (2认同)

Jac*_*lly 25

environment is inconsistent当我尝试更新 conda 环境时出现错误base。我正在使用迷你康达。不幸的是,上面的答案都不适合我。

对我有用的是:

conda activate base
conda install conda --force-reinstall
conda install conda --force-reinstall
conda update --all
Run Code Online (Sandbox Code Playgroud)

(是的,由于某种原因有必要运行conda install conda --force-reinstall两次!)


jsc*_*abs 17

有同样的问题,其他解决方案都不适合我。最终不得不卸载并重新安装 conda,然后重新安装我的所有库。

  • 为什么投反对票?我尝试了许多其他解决方案,这些解决方案都导致了关于不一致的包和 conda 永远旋转的相同消息。完全重新安装只花了几分钟,就又给了我一个可以工作的系统。如果您有任何需要保留的有价值的环境,我显然不会推荐这样做。 (6认同)
  • @BasSwinckels 哈哈,也许我没有强调得足够多,其他解决方案都不适合我。 (2认同)

Sac*_*mar 15

不一致是由于软件包的版本不同以及它们相互冲突的依赖性引起的。

conda update --all
Run Code Online (Sandbox Code Playgroud)

此命令将更新所有软件包,然后conda自行解决不一致问题。

  • 这并不能解决问题,因为不一致不是由依赖项引起的,而是由服务器端的[元数据更改](https://github.com/conda/conda/issues/8490#issuecomment-481849564)引起的(即在频道中)。我尝试了这个,但它不起作用,但是正如链接所说,这是一个可以忽略的警告。 (2认同)

han*_*ans 13

终极解决方案:

conda activate base
conda install anaconda
conda update --all
Run Code Online (Sandbox Code Playgroud)

适用于 Windows 10 和 Ubuntu 18.04(对于 ubuntu 归功于 @MF.OX)。

为我删除了以下问题:

  • The environment is inconsistent
  • WARNING conda.base.context:use_only_tar_bz2(632)


ken*_*enl 9

如果其他解决方案不起作用,恢复环境可以解决这个问题。

使用conda list --revisions,选择一个修订号,然后使用conda install --revision [#] 逐步返回,直到一切恢复正常。


Yen*_*ang 7

Given a situation like the following,

> conda update -c intel --all
Collecting package metadata: done
Solving environment: |
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - intel/win-64::ipython==6.3.1=py36_3
  - intel/win-64::prompt_toolkit==1.0.15=py36_2
done
Run Code Online (Sandbox Code Playgroud)

As mentioned in other answers, the idea is to have some sort of re-installation to occur for the inconsistent packages.

Thus, with a few copy-&-paste's, you could:

> conda install intel/win-64::ipython==6.3.1=py36_3
Collecting package metadata: done
Solving environment: /
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - intel/win-64::ipython==6.3.1=py36_3
  - intel/win-64::prompt_toolkit==1.0.15=py36_2
done

## Package Plan ##

  environment location: c:\conda

  added / updated specs:
    - ipython


The following NEW packages will be INSTALLED:

  jedi               intel/win-64::jedi-0.12.0-py36_2
  parso              intel/win-64::parso-0.2.0-py36_2
  pygments           intel/win-64::pygments-2.2.0-py36_5
  wcwidth            intel/win-64::wcwidth-0.1.7-py36_6


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Run Code Online (Sandbox Code Playgroud)

(and you would have to repeat for all the packages)


My “Shortcut”

Alternatively, cook up an (ugly) one-liner (this should work for Windows as well as other platforms)

Note: by "ORIGINAL_COMMAND", I'm referring to any command that gives you the error message (without any other side-effects, ideally)

<ORIGINAL_COMMAND> 2>&1 | python -c "import sys,re,conda.cli; conda.cli.main('conda','install','-y',*re.findall(r'^\s*-\s*(\S+)$',sys.stdin.read(),re.MULTILINE))"
Run Code Online (Sandbox Code Playgroud)

Expanding the above one-liner:

> conda update -c intel --all
Collecting package metadata: done
Solving environment: |
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - intel/win-64::ipython==6.3.1=py36_3
  - intel/win-64::prompt_toolkit==1.0.15=py36_2
done
Run Code Online (Sandbox Code Playgroud)


Kri*_*ern 7

该命令conda install -c anaconda anaconda对我有用。对于我的设置,我需要指定频道,否则它将无法工作。在终端中运行命令后,提示我更新发现不一致的软件包列表。如果没有这一步,我不能与安装或更新任何软件包conda install <package_name>conda update <package_name分别。


Mil*_*d R 7

对我有用的是

`conda remove <offending_packagename>`, 
`conda update --all` 
Run Code Online (Sandbox Code Playgroud)

然后最后

`conda install <offending_packagename>`.
Run Code Online (Sandbox Code Playgroud)


小智 6

对于我们这些拥有 miniconda 并且不能/不想安装 anaconda 的人来说:接受的答案在调整后有效。

  1. conda install conda
  2. conda update --all

本来会发表评论,但我的代表太低了。


Jer*_*erz 5

我有这个问题很长时间了。可能conda install anaconda可行,但需要的时间太长了——在我的机器上超过 24 小时。

这是一个在 5 分钟内为我工作的解决方案:

  1. 删除所有不需要的软件包 - 小心保留 conda 运行所必需的软件包。
  2. 然后,使用conda install anaconda.

但如何?有很多!

这就是我所做的:

  1. 用 python 创建一个新鲜的环境,相当简单。然后,列出其中的包:

conda create -n fresh python

conda activate fresh

conda list

保存输出,您将需要它。1b. 回到基础环境:

conda deactivate

  1. 使用以下代码片段生成一个conda命令,该命令将删除所有不一致的包:

(好的包是)

exclusion_text = '''
_libgcc_mutex             0.1                        main  
_openmp_mutex             4.5                       1_gnu  
anyio                     2.2.0            py39h06a4308_1  
argon2-cffi               20.1.0           py39h27cfd23_1  
async_generator           1.10               pyhd3eb1b0_0  
...
Run Code Online (Sandbox Code Playgroud)

... 和更多!从一个好的环境中得到这个。

请注意在 python 中使用三引号 (''') 来使用多行字符串。

bad_packages_text = '''
  - https://repo.continuum.io/pkgs/main/linux-64/networkx-2.1-py36_0.tar.bz2/linux-64::networkx==2.1=py36_0
  - https://repo.continuum.io/pkgs/main/linux-64/spyder-3.2.6-> py36_0.tar.bz2/linux-64::spyder==3.2.6=py36_0
py36h4c697fb_0.tar.bz2/linux-64::jdcal==1.3=py36h4c697fb_0
 - defaults/noarch::jupyterlab_server==1.1.4=py_0
 - defaults/linux-64::argh==0.26.2=py37_0
... 
Run Code Online (Sandbox Code Playgroud)

... 和更多!通过复制粘贴“以下软件包导致不一致”来获取此信息。信息。

然后,在 python 中处理这个:

exclusions = [line.split(' ')[0] for line in exclusion_text_lines if line !='']
bad_packages_lines = bad_packages_text.split('\n')
bad_packages = [line.split('::')[1].split('==')[0] for line in bad_packages_lines if line!='']
exclusions.append('conda') # make sure!
exclusions.append('tqdm')
Run Code Online (Sandbox Code Playgroud)

最后构建救生命令:

command_line = 'conda remove '
for bad_package in bad_packages:
    if bad_package not in exclusions:
        command_line = f'{command_line} {bad_package}'
command_line   
Run Code Online (Sandbox Code Playgroud)

由于在解决环境时,列表中的所有包都remove可以被忽略,conda不再需要考虑它们的版本,并且过程很快。

也许有人可以重构此方法以使其更容易 - 或者更好的是,升级conda以启用快速reset base命令。

这对我有用——我写这篇文章比执行这些操作花费了更长的时间。

祝你好运!