ChatGPT解决这个技术问题 Extra ChatGPT

环境不一致,请仔细查看套餐方案

我尝试从 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

我尝试使用 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
有没有人在这方面取得任何进展,如果我必须手动更新 100 个问题,那将永远花费我。由于同样的问题,我什至无法卸载 anaconda 并重新开始:(

m
mm49307

我也遇到过同样的问题。简单地运行

conda install anaconda

为我解决了这个问题。


我有同样的问题,我按照你的建议做了。但我仍然有不一致的地方。我正在运行 osx-64,你也运行 osx 吗?
我收到 conda update --all 的错误,因此它不能解决问题(在某些情况下),但 conda install 似乎可以工作(并更新列表中的其他包)
对我来说,解决方案分为两个步骤:首先,conda install anaconda 刚刚安装了 anaconda 包并删除了一个 conda 包 + 更新了一些依赖项。然后我用 conda update --all 跟着它,一切又好了!我的系统是 Ubuntu 18.04,我在更新 spyder 包后遇到了这个问题,这也导致了对 conda 本身的更新,这导致了不一致。
conda install anaconda 也对我有用,尽管我不得不等待超过 5 分钟才能让 conda 提出一揽子计划。
conda update anaconda 之前先尝试 conda update conda。前者可能会以最少的安装/升级/降级需求来解决您的问题,并且只需更新 [ana,mini]conda 系统及其依赖项本身,而不是整个 anaconda3。此外,如果您也决定这样做,那么首先运行前者可能会使后者更有效地工作。
t
tys1998

Google Groups 看到这个

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

它真的对我有用。

也许您应该在您的情况下尝试 conda install anaconda


对于我的所有 conda 环境来说,不一致的环境是一个令人烦恼的问题,conda install anaconda 没有解决它。我需要这样做:(重新)安装它单独调用的每个包。谢谢!
@conner.xyz 我发现自己处于类似的情况,并决定编写一个重新安装每个软件包的片段是一种公平的方式(请参阅下面的答案)。然而,幸运的是不必在多个环境中工作。
很好的答案 - 很高兴能解释为什么会发生这种情况以及一个简洁的修复(至少对我来说)完美地工作。
S
Sachin Kumar

不一致是由于包的不同版本及其冲突的依赖关系引起的。

conda update --all

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


这是更好的答案,因为它只更新冲突并导致不一致的包。
这并不能解决问题,因为不一致不是由依赖关系引起的,而是由服务器端的 change in metadata 引起的(即在通道中)。我试过了,但没有用,但是正如链接所说,这是一个可以忽略的警告。
当“conda upgrade conda”失败时,“conda install anaconda; conda update --all”解决了我的问题。
conda update --all 只是告诉我包冲突而不试图解决它们。
j
jschabs

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


为什么投反对票?我尝试了许多其他解决方案,所有这些都导致了关于不一致的包和 conda 永远旋转的相同消息。完全重新安装只用了几分钟,又给了我一个工作系统。如果您有任何需要保留的有价值的环境,我显然不会推荐这个。
@BasSwinckels 大声笑也许我没有足够强调其他解决方案都不适合我。
这是唯一对我有用的东西……我已经在第三次安装 anaconda……我永远不会再更新它了。
h
hans

终极解决方案:

conda activate base
conda install anaconda
conda update --all

适用于 Windows 10 和 Ubuntu 18.04(感谢 @MF.OX for ubuntu)。

为我消除了以下问题:

环境不一致

警告 conda.base.context:use_only_tar_bz2(632)


谢谢,它有效。基础环境更新后,我激活了我的虚拟环境,并重复 conda upadte --all 以获取 # All requested packages alread installed. 消息。
M
Max Vollmer

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

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


Y
YenForYang

鉴于以下情况,

> 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

正如其他答案中提到的,这个想法是对不一致的包进行某种重新install

因此,通过一些复制和粘贴,您可以:

> 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

(你必须重复所有的包)

我的“捷径”

或者,制作一个(丑陋的)单线(这应该适用于 Windows 以及其他平台)

注意:通过“ORIGINAL_COMMAND”,我指的是任何给你错误消息的命令(理想情况下没有任何其他副作用)

<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))"

扩展上述单行:

from re import findall, MULTILINE
from sys import stdin
from conda.cli import main

main(
    "conda", "install", "-y",
    "--force",  # Maybe add a '--force'/'--force-reinstall' (I didn't add it for the one-liner above)
    *findall(r"^\s*-\s*(\S+)$", stdin.read(), MULTILINE)  # Here are the offenders
)

K
Kris Stern

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


J
Jack Kelly

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

对我有用的是:

conda activate base
conda install conda --force-reinstall
conda install conda --force-reinstall
conda update --all

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


我有 miniconda 并且不想安装 anaconda(如已接受的答案),并且效果很好。是的,必须运行 conda install conda --force-reinstall 两次!以防万一:适当更改您的环境名称 (conda activate [environemtn_name])。谢谢@杰克凯利。
我已经在我的 Mac 上安装了 Anaconda。我需要pandoc。在 Anaconda 导航器中找不到它,所以我尝试了 conda。得到与OP相同的错误。尝试了这个解决方案,它修复了错误。之后我能够安装 pandoc。
Y
Yogendra

对我有用的是

`conda remove <offending_packagename>`, 
`conda update --all` 

然后最后

`conda install <offending_packagename>`.

J
Jerzy Dziewierz

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

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

删除所有不需要的包——小心留下对 conda 运行至关重要的包。然后,使用 conda 安装 anaconda。

但是怎么办??有很多!

这就是我所做的:

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

conda create -n fresh python

conda activate fresh

conda list

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

conda deactivate

使用以下代码段生成一个 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  
...

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

请注意使用三引号 (''') 在 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
... 

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

然后,在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')

最后,构造救生命令:

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   

由于在求解环境时,可以忽略remove列表中的所有包,conda不再需要考虑它们的版本,处理速度很快。

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

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

祝你好运!


Y
Yogendra
conda install anaconda
conda clean --all
conda update --all

为我解决问题


D
Dijkgraaf

您可能使用 python 2.7 安装了 anaconda,但后来您使用了 python 3.x。因此,您会收到一条错误消息。就我而言,我通过使用 python 2.7 激活 anaconda 解决了这个问题:

conda create --name py2 python=2.7

有没有办法确定使用哪个 python 版本来安装 conda?
S
Saaru Lindestøkke

为了解决此消息,我必须在我的 base 环境中依次运行 conda update --all 次。每次不一致的包裹数量减少,直到 conda 说:

# 所有请求的包都已安装。

我在使用 conda 版本 4.10.3 的 macOS Big Sur 11.6 上。


h
harabat

对于我们这些拥有 miniconda 并且不能/不想安装 anaconda 的人:接受的答案在适应时有效。

康达安装康达康达更新--全部

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


T
ThiGre

就我而言,上述方法均无效。但这在不到一分钟的时间内就成功了:

1-我再次下载了最新的安装程序(在我的情况下是 miniconda)

2- 使用 -u 选项运行安装程序:

bash Miniconda3-py39_xxxx-Linux-x86_64.sh -u

3-对所有问题回答“是”并让安装程序完成

4-然后我可以运行 conda update conda -all

希望这可以帮助...


V
VojtaK

试试看环境管理https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

通过使用沿线的东西

conda create --name astra python=3.5
conda activate astra
conda install -c astra-toolbox astra-toolbox

您可以看到您甚至可以指定目标 python 版本。现在玩安装的新软件包。不满意时,你总是可以做

conda deactivate
conda env remove -n astra

如果您将所有内容都安装到基本环境并且某些东西被破坏了,那么最好不要安装 conda 并使用默认的 python 通过 pip 管理它。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅