了解 Conda,获取 ResolvePackageNotFound 错误

Understanding Conda, getting ResolvePackageNotFound error

我是 conda 的新手。我读到它使维护不同版本的包变得容易。我克隆了一个 git 存储库:https://github.com/datitran/face2face-demo 使用

git clone https://github.com/datitran/face2face-demo

而不是上面 git 页面上的问题,但遗憾的是当我 运行

conda env create -f environment.yml

它给了我以下错误:

Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound: 
  - mkl==2017.0.3=0
  - jpeg==9b=0
  - readline==6.2=2
  - xz==5.2.2=1
  - libpng==1.6.27=0
  - tk==8.5.18=0
  - numpy==1.13.0=py35_0
  - bzip2==1.0.6=3

我在 Ubuntu 和 Mac 中 运行 这些,但在两个地方都出现了相同的错误。

所以我的问题是(所有相关的,基本上我希望 conda 不会给我这些错误):

我的第二个问题是关于 mac 上的 conda shell,我在

上问过

Why conda is not able to resolve these?

因为您请求的包版本无法从默认渠道获得(不再)。从 conda 版本 4.7 开始,所谓的 free 通道已被删除 from the defaults,这导致一些较旧的模块版本不再被发现。您可以通过输入 conda search <package name>:

来判断
conda search mkl
Loading channels: done
# Name                       Version           Build  Channel
mkl                         2017.0.4      h4c4d0af_0  pkgs/main
mkl                         2018.0.0      hb491cac_4  pkgs/main
mkl                         2018.0.1      h19d6760_4  pkgs/main
mkl                         2018.0.2               1  pkgs/main
mkl                         2018.0.3               1  pkgs/main
mkl                           2019.0             117  pkgs/main
mkl                           2019.0             118  pkgs/main
mkl                           2019.1             144  pkgs/main
mkl                           2019.3             199  pkgs/main
mkl                           2019.4             243  pkgs/main

如您所见,您请求的版本不存在。通过添加 -c free 即可轻松修复,即再次手动添加 free 频道:

conda search -c free mkl
Loading channels: done
# Name                       Version           Build  Channel
mkl                           11.3.1               0  free
mkl                           11.3.3               0  free
mkl                         2017.0.1               0  free
mkl                         2017.0.3               0  free
mkl                         2017.0.4      h4c4d0af_0  pkgs/main
mkl                         2018.0.0      hb491cac_4  pkgs/main
mkl                         2018.0.1      h19d6760_4  pkgs/main
mkl                         2018.0.2               1  pkgs/main
mkl                         2018.0.3               1  pkgs/main
mkl                           2019.0             117  pkgs/main
mkl                           2019.0             118  pkgs/main
mkl                           2019.1             144  pkgs/main
mkl                           2019.3             199  pkgs/main
mkl                           2019.4             243  pkgs/main

您可以通过编辑 environment.yml:

将此开关添加到您的环境创建中
channels: !!python/tuple
- menpo
- defaults
- free

Whats the point of using conda if I bump into these issues even after installing it. What is there in 500Mb+ installer which I downloaded?

不要混淆anacondaconda,这是两个不同的东西。 conda,包和环境管理器自带 anacondaminicondaanaconda 还预装了许多软件包,您可以输入 conda list 来查看。如果您不想拥有所有这些预安装的包(因为您只想创建自己的环境),您可以将 anaconda 替换为 miniconda,它没有任何预安装的包已安装(当然 pythonpipconda 及其依赖项除外)