为什么conda在激活另一个环境后重新定义基本环境?

时间:2019-07-14 15:29:12

标签: python anaconda conda

这是我的设置:我在conda中有3个环境:

  1. 默认base环境。
  2. conda create -n test-env python=3.7 pandas从命令行创建的环境。
  3. 使用以下命令.ymlconda env create -f environment.yml -n env-from-yml-file文件创建环境。

这是conda env list环境中base的输出:

# conda environments:
#
base                  *  C:\home\anaconda3
env-from-yml-file        C:\home\anaconda3\envs\env-from-yml-file
test-env                 C:\home\anaconda3\envs\test-env

如果我激活test-env,然后列出我将获得的所有环境,则希望得到:在test-env附近(即conda activate test-env && conda env list)带有星号的环境列表:

# conda environments:
#
base                     C:\home\anaconda3
env-from-yml-file        C:\home\anaconda3\envs\env-from-yml-file
test-env              *  C:\home\anaconda3\envs\test-env

但是,如果我激活env-from-yml-file,则会得到非常奇怪的结果,即conda activate env-from-yml-file && conda env list

# conda environments:
#
                         C:\home\anaconda3
base                  *  C:\home\anaconda3\envs\env-from-yml-file
                         C:\home\anaconda3\envs\test-env

请确保环境名称消失,env-from-yml-file被标记为base

有人知道这是怎么回事吗?

在创建环境时我没有使用前缀,尽管我的conda已安装在自定义路径中。

我的environment.yml文件:

name: sensortag-model-env
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - pip
  - pip:
    - envparse
    - pipenv
  - flake8
  - pytest
  - black
  - pandas
  - conda-build
  - xlrd
  - luigi

1 个答案:

答案 0 :(得分:0)

我弄清楚了行为不一致的问题:conda-build软件包。如果此软件包安装在环境中,则激活后该环境将变为base

通过命令行(conda create -n test-env-build python=3.7 pandas conda-build)和.yml文件进行了验证。