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



我尝试从 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:UsersNAMEContinuum
shell level : 1
user config file : C:UsersNAME.condarc
populated config files : C:UsersNAME.condarc
conda version : 4.6.11
conda-build version : 3.17.7
python version : 3.7.3.final.0
base environment : C:UsersNAMEContinuum  (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:UsersNAMEContinuumpkgs
C:UsersNAME.condapkgs
C:UsersNAMEAppDataLocalcondacondapkgs
envs directories : C:UsersNAMEContinuumenvs
C:UsersNAME.condaenvs
C:UsersNAMEAppDataLocalcondacondaenvs
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

我遇到了同样的问题。简单运行

conda install anaconda

为我解决了问题。

在谷歌网上论坛上看到了这个

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

它真的对我有用。

也许你应该在你的情况中尝试conda install anaconda

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

conda update --all

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

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

终极解决方案:

conda activate base
conda install anaconda
conda update --all

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

为我解决了以下问题:

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

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

对我有用的是:

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

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

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

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

给定如下情况,

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

命令conda install -c anaconda anaconda为我做了这个技巧。对于我的设置,我需要指定通道,否则它将无法正常工作。在终端中运行命令后,系统提示我更新发现不一致的软件包列表。如果没有此步骤,我将无法分别使用conda install <package_name>conda update <package_name安装或更新任何软件包。

对我有用的是

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

然后最后

`conda install <offending_packagename>`.

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

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

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

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

这是一个在 5 分钟内对我有用的解决方案:

  1. 删除所有不需要的包 - 小心地留下那些对conda操作至关重要的包。
  2. 然后,使用conda install anaconda.

但是怎么做?? 有很多!

这是我所做的:

  1. 用蟒蛇做一个新鲜的,相当简陋。 然后,列出其中的包:

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  
...

。等等!从良好的环境中获取此内容。

请注意在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命令。

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

祝你好运!

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

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

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

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

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

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

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

3-对所有问题回答"是",让安装程序完成

4-然后我可以运行conda更新conda -all

希望这有帮助...

conda install anaconda
conda clean --all
conda update --all

为我解决问题

当我不得不卸载 osx-64 版本并安装英特尔版本时,这发生在我的 MacOS 文图拉上(请不要在花生画廊发表评论)。我在尝试"康达更新康达"时得到了这个:

The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:
- defaults/osx-64::holoviews==1.15.0=py39hecd8cb5_0
- defaults/noarch::babel==2.9.1=pyhd3eb1b0_0
- defaults/osx-64::anaconda-project==0.11.1=py39hecd8cb5_0
- defaults/osx-64::jupyterlab==3.4.4=py39hecd8cb5_0
- defaults/osx-64::datashader==0.14.1=py39hecd8cb5_0
- defaults/osx-64::anaconda==2022.10=py39_0
- defaults/osx-64::hvplot==0.8.0=py39hecd8cb5_0
- defaults/osx-64::bkcharts==0.2=py39hecd8cb5_1
- defaults/osx-64::conda-build==3.22.0=py39hecd8cb5_0
- defaults/osx-64::anaconda-navigator==2.4.0=py39hecd8cb5_0
- defaults/osx-64::sphinx==5.0.2=py39hecd8cb5_0
- defaults/osx-64::_ipyw_jlab_nb_ext_conf==0.1.0=py39hecd8cb5_1
- defaults/osx-64::statsmodels==0.13.2=py39hca72f7f_0
- defaults/osx-64::dask==2022.7.0=py39hecd8cb5_0
- defaults/osx-64::anaconda-client==1.11.0=py39hecd8cb5_0
- defaults/noarch::jupyterlab_server==2.10.3=pyhd3eb1b0_1
- defaults/osx-64::numpydoc==1.4.0=py39hecd8cb5_0
- defaults/noarch::intake==0.6.5=pyhd3eb1b0_0
- defaults/osx-64::pandas==1.4.4=py39he9d5cce_0
- defaults/osx-64::jupyter==1.0.0=py39hecd8cb5_8
- defaults/osx-64::conda-repo-cli==1.0.20=py39hecd8cb5_0
- defaults/noarch::seaborn==0.11.2=pyhd3eb1b0_0
- defaults/osx-64::spyder==5.3.3=py39hecd8cb5_0
- defaults/noarch::xarray==0.20.1=pyhd3eb1b0_1

我将输出编辑到此命令中并运行它:

conda uninstall holoviews babel anaconda-project jupyterlab datashader anaconda hvplot bkcharts conda-build anaconda-navigator sphinx _ipyw_jlab_nb_ext_conf statsmodels dask anaconda-client jupyterlab_server numpydoc intake pandas jupyter conda-repo-cli seaborn spyder xarray

然后我重新编辑了命令并运行它:

conda install holoviews babel anaconda-project jupyterlab datashader anaconda hvplot bkcharts conda-build anaconda-navigator sphinx _ipyw_jlab_nb_ext_conf statsmodels dask anaconda-client jupyterlab_server numpydoc intake pandas jupyter conda-repo-cli seaborn spyder xarray

我做了一个决赛

conda update conda

事情似乎很好。(注意:确保对任何"继续([y]/n)?"提示回答"y"。

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

conda create --name py2 python=2.7

适用于 Miniconda + Windows x64 + Python 3.10:

conda activate base
conda update conda
conda update --all

经过测试,工作完美。

注意:更新base足以修复conda env list可见的所有其他环境的问题。

在我的环境中。

1.

conda install anaconda
conda update --all

然后它正常工作。

我的本地环境是 ubuntu 22.04 已尝试运行:conda update anconda它没有用。 有效的方法是删除不一致的包。 下面是要在终端上运行的命令;

conda remove [inconsistent package name]
conda update --all

尝试查看环境管理 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 管理它。

最新更新