我试图从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安装anaconda可能可以工作,但它花费的时间太长了——在我的机器上超过24小时。
下面是一个在5分钟内对我有效的解决方法:
删除所有不需要的包——注意留下对conda操作至关重要的包。
然后,使用conda安装anaconda。
但是如何? ?他们有很多人!
我所行的乃是这样:
用python做一个新鲜的环境,相当简单。然后,列出其中的包:
Conda创建-n fresh python
Conda激活新鲜
conda列表
保存输出,您将需要它。
1 b。回到基地环境:
conda禁用
使用下面的代码段生成一个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以启用快速重置基本命令。
这对我来说很有效——我写这篇文章花的时间比执行这些操作花的时间还长。
好运!
试着去看看环境管理
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
如果你把所有东西都安装到基本的env中,但有些东西坏了,那么可能最好根本不安装conda,而是使用默认的python通过pip来管理它。
我有这个问题已经很久了。conda安装anaconda可能可以工作,但它花费的时间太长了——在我的机器上超过24小时。
下面是一个在5分钟内对我有效的解决方法:
删除所有不需要的包——注意留下对conda操作至关重要的包。
然后,使用conda安装anaconda。
但是如何? ?他们有很多人!
我所行的乃是这样:
用python做一个新鲜的环境,相当简单。然后,列出其中的包:
Conda创建-n fresh python
Conda激活新鲜
conda列表
保存输出,您将需要它。
1 b。回到基地环境:
conda禁用
使用下面的代码段生成一个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以启用快速重置基本命令。
这对我来说很有效——我写这篇文章花的时间比执行这些操作花的时间还长。
好运!