这是我的设置:我在 conda 中有 3 个环境:
- 默认
基本
环境。 - 通过
conda create -n test-env python=3.7 pandas
从命令行创建的环境。 - 使用以下命令从
.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/