我尝试从 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
我也遇到过同样的问题。简单地运行
conda install anaconda
为我解决了这个问题。
在 Google Groups 看到这个
此消息是在 conda 4.6.9 中添加的,以前当 conda 检测到不一致的环境时没有任何指示,除非 conda 在调试模式下运行。您的环境可能在一段时间内不一致,但升级到 conda 使其可见。最好的选择是对不一致的包运行“conda install package_name”,让 conda 尝试恢复一致性。
它真的对我有用。
也许您应该在您的情况下尝试 conda install anaconda
。
conda install anaconda
没有解决它。我需要这样做:(重新)安装它单独调用的每个包。谢谢!
不一致是由于包的不同版本及其冲突的依赖关系引起的。
conda update --all
此命令更新所有包,然后 conda 自行解决不一致问题。
conda update --all
只是告诉我包冲突而不试图解决它们。
有同样的问题,其他解决方案都不适合我。最终不得不卸载并重新安装 conda,然后重新安装我所有的库。
终极解决方案:
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.
消息。
如果其他解决方案不起作用,恢复环境可以解决此问题。
使用 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
安装或更新任何软件包。
当我尝试更新我的 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]
)。谢谢@杰克凯利。
对我有用的是
`conda remove <offending_packagename>`,
`conda update --all`
然后最后
`conda install <offending_packagename>`.
我有这个问题很久了。 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
命令。
这对我有用——写这篇文章比执行这些操作花费了我更长的时间。
祝你好运!
conda install anaconda
conda clean --all
conda update --all
为我解决问题
您可能使用 python 2.7 安装了 anaconda,但后来您使用了 python 3.x。因此,您会收到一条错误消息。就我而言,我通过使用 python 2.7 激活 anaconda 解决了这个问题:
conda create --name py2 python=2.7
为了解决此消息,我必须在我的 base
环境中依次运行 conda update --all
三 次。每次不一致的包裹数量减少,直到 conda
说:
# 所有请求的包都已安装。
我在使用 conda
版本 4.10.3
的 macOS Big Sur 11.6 上。
对于我们这些拥有 miniconda 并且不能/不想安装 anaconda 的人:接受的答案在适应时有效。
康达安装康达康达更新--全部
本来会评论的,但我的代表太低了。
就我而言,上述方法均无效。但这在不到一分钟的时间内就成功了:
1-我再次下载了最新的安装程序(在我的情况下是 miniconda)
2- 使用 -u 选项运行安装程序:
bash Miniconda3-py39_xxxx-Linux-x86_64.sh -u
3-对所有问题回答“是”并让安装程序完成
4-然后我可以运行 conda update conda -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 管理它。
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。此外,如果您也决定这样做,那么首先运行前者可能会使后者更有效地工作。