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

标签 python anaconda conda

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

  1. 默认基本环境。
  2. 通过 conda create -n test-env python=3.7 pandas 从命令行创建的环境。
  3. 使用以下命令从 .yml 文件创建环境 conda env create -fenvironment.yml -n env-from-yml-file

以下是 base 环境中 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

如果我激活 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

最佳答案

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

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

关于python - 为什么conda在激活另一个环境后重新定义基础环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028760/

相关文章:

python - 有没有办法获取使用 python 创建文件的年份?

python - aesEncrypt 产生不同的结果

python - Python 和 Anaconda 的混淆

python - 无法在 Anaconda 中安装 VS Code

python - 如何让 "conda"安装程序查找 "PyPi"包

python - 如何将线程添加到 PyQt5 GUI?

python - 整数作为数字总和返回?

python - 在Anaconda中播放文件中的视频

apache-spark - Dataproc 未从自定义 Conda channel 安装自定义 Conda 包

python - 如何在Snakemake中引用anaconda环境中的可执行文件