conda export 没有保存任何依赖项

conda export is not saving any dependencies

我正在尝试保存我的 conda 环境,以便我可以将其发送给其他人以重现我的工作。在我激活的环境中:

(env_name) c:\eric\ conda env export > environment.yml

这个环境安装了几十个包(包括numpymatplotlib)。当我打开生成的 environment.yml 文件时,我只得到:

name: env_name
channels:
  - conda-forge
  - defaults
prefix: C:\Users\eric\Miniconda3\envs\env_name\envs\env_name

那是 整个 文件:甚至没有显示 dependencies: 的一行,这通常会显示在 env 中的包中。

我正在使用 miniconda,版本 4.12.0,并且 运行 conda update conda

Conda 问题

我在 conda 上发现了两个问题:

第一个问题的一个解决方案是使用以下命令:

conda env export -p path-to-folder > environment.yml

不幸的是,这对我不起作用,但它似乎对很多人都有效。

与相关问题的比较

请注意 prefix 值确实很奇怪,通常类似于:

C:\Users\eric\.conda\envs\env_name

坦率地说,我并不担心这一点,不像相关问题专注于删除 prefix 并且接受的答案是 bash shell 命令:

我的问题更直接:为什么我的 yaml 文件中没有显示依赖关系?

例如,应该出现如下内容:

dependencies:
  - pandas=1.0.3=py37h47e9c7a_0
  - qt=5.9.7=vc14h73c81de_0
  - pip:
    - imageio==2.9.0
    - scikit-image==0.17.2

但从字面上看, 依赖关系,甚至没有依赖关系参数。

可能环境未正确激活,因此它实际上并未导出所需的内容。幸运的是,大多数 Conda 命令都提供参数来明确指定环境。具体来说,尝试使用 --name,-n 参数,例如

conda env export -n env_name > env_name.yaml

就我个人而言,我尝试始终使用 --name,-n--prefix,-p 标志,因为我发现 context-sensitive 命令更容易出错(例如,在不正确的环境中安装)。