Python 2.7 无法安装包含Anaconda 4.0.0 np110py27_0的Anaconda环境

Python 2.7 无法安装包含Anaconda 4.0.0 np110py27_0的Anaconda环境,python-2.7,anaconda,Python 2.7,Anaconda,在Anaconda中,我试图使用environment.yml文件创建一个环境,该文件以以下行开头: name: mytest dependencies: - anaconda=4.0.0=np110py27_0 但是,在尝试创建环境时,我遇到了以下错误: Fetching package metadata ......... Solving package specifications: .... Error: The following specifications were found

在Anaconda中,我试图使用environment.yml文件创建一个环境,该文件以以下行开头:

name: mytest
dependencies:
- anaconda=4.0.0=np110py27_0
但是,在尝试创建环境时,我遇到了以下错误:

Fetching package metadata .........
Solving package specifications: ....
Error: The following specifications were found to be in conflict:
  - anaconda 4.0.0 np110py27_0
Use "conda info <package>" to see the dependencies for each package.
获取包元数据。。。。。。。。。
解决包规格:。。。。
错误:发现以下规范存在冲突:
-水蟒4.0.0 np110py27_0
使用“conda info”查看每个包的依赖项。
七天前我这样做时没有遇到任何问题,但当我昨天尝试时,我发现了错误

我以管理员身份运行在64位Windows 7上,Anaconda 2.2.0(Python 2.7版本)。“conda列表”输出包括conda 4.1.11和conda env 2.5.2

为了尝试隔离错误,我在另一台64位Windows 7计算机(作为管理员)上安装了Miniconda2,这台计算机以前从未安装过Anaconda/Miniconda。这是最新的64位Python 2.7系列(Miniconda2-4.1.11-Windows-x86_64.exe)

但尝试将anaconda=4.0.0=np110py27_0安装到新环境或根环境时,两者都会产生与我之前收到的相同的错误:

C:\>conda install anaconda=4.0.0=np110py27_0
Fetching package metadata .........
.Solving package specifications: ....

The following specifications were found to be in conflict:
  - anaconda 4.0.0 np110py27_0
Use "conda info <package>" to see the dependencies for each package.

C:\>conda create --name test400 anaconda=4.0.0=np110py27_0
Fetching package metadata .........
.Solving package specifications: ....

The following specifications were found to be in conflict:
  - anaconda 4.0.0 np110py27_0
Use "conda info <package>" to see the dependencies for each package.
C:\>conda安装anaconda=4.0.0=np110py27\u 0
正在获取包元数据。。。。。。。。。
.解决包装规格问题:。。。。
发现以下规范存在冲突:
-水蟒4.0.0 np110py27_0
使用“conda info”查看每个包的依赖项。
C:\>conda create--name test400 anaconda=4.0.0=np110py27\u 0
正在获取包元数据。。。。。。。。。
.解决包装规格问题:。。。。
发现以下规范存在冲突:
-水蟒4.0.0 np110py27_0
使用“conda info”查看每个包的依赖项。
鉴于conda没有在其错误消息中命名第二个包,我如何确定导致冲突的原因,以及如何解决冲突?我看到过对其他“冲突中的规范”问题的回答,其中的答案通常是“将有问题的包安装到单独的python环境”,但在这种情况下,无法使用包创建新环境。从干净的Miniconda开始安装也不起作用。我怀疑Anaconda存储库中发生了一些变化(这将与原来的environment.yml在过去工作,但现在不工作),但我如何确定这是否是根本问题


谢谢。

根本问题是文件中的临时错误,现已修复

以下是调查Anaconda依赖冲突的详细信息以及本案例的解决方法,供调查Anaconda依赖冲突的人员参考:

原因:

  • repodata.json文件(上面链接)本质上是中各种库的依赖关系的“主列表”。“conda”命令使用此repodata.json文件
  • 当问题发生时,repodata.json文件错误地将“\u nb\u ext\u conf”列为每个版本IPyWidget的依赖项。(在“ipywidgets-4.1.1-py27_0.tar.bz2”中的/info/index.json文件没有将“_nb_ext_conf”列为依赖项,但是我认为新版本的ipywidgets需要它。)
  • “_nb_ext_conf-0.2.0-py27_0.tar.bz2”和“_nb_ext_conf-0.3.0-py27_0.tar.bz2”文件将“notebook>=4.2.0”列为其info/index.json文件中的依赖项
  • anaconda-4.0.0-np110py27_0.tar.bz2文件(在environment.yml中指定“anaconda=4.0.0=np110py27_0”时使用)中的info/index.json文件将“ipywidgets 4.1.1 py27_0”列为依赖项
  • 由于repodata.json中存在临时问题,此“ipywidgets 4.1.1 py27_0”导致conda认为需要安装“_nb_ext_conf”,从而导致conda认为还需要安装“notebook>=4.2.0”
  • 但是anaconda-4.0.0-np110py27_0.tar.bz2文件中的info/index.json文件还指定必须安装特定版本的“notebook 4.1.0 py27_2”
  • “笔记本”版本(4.1.0和>=4.2.0)的冲突要求导致“发现规范冲突”错误
解决方法:

  • 首先,从environment.yml文件中删除“-anaconda=4.0.0=np110py27_0”行
  • 接下来,将environment.yml中的那一行替换为anaconda-4.0.0-np110py27_0.tar.bz2中info/index.json文件“depends”部分中列出的每个库。(删除引号,用等号替换空格等,将.json语法转换为environment.yml语法。)
  • 最后,从列表中删除“-notebook=4.1.0=py27_2”行
这个新的environment.yml文件现在将列出“anaconda=4.0.0=np110py27_0”安装的所有库,除了“notebook”,但“notebook”将被安装,因为“ipywidgets”导致的“_nb_ext_conf”中的“notebook>=4.2.0”要求和/或“ipywidgets”本身的“notebook”要求

调查工具:

  • 根据repodata.json,命令“conda info anaconda=4.0.0=np110py27_0”给出指定包所需的库列表。我将这个库列表放入一个临时的_environment.yml文件中。试图从该临时_environment.yml文件创建环境导致conda指定“notebook”参与冲突,这提示尝试省略“notebook”
  • 运行“conda info”将列出活动环境中当前安装的所有库。将临时_environment.yml创建的环境的输出与先前成功安装了“anaconda=4.0.0=np110py27_0”的计算机环境的输出进行比较。这突出了“\u nb\u ext\u conf”作为一个区别
  • 我创建了一个批处理文件,为anaconda=4.0.0=np110py27_0中列出的每个库运行“conda info”,并查找“notebook”的实例