在 gitlab CI 期间激活 conda 环境
问题描述
我的 .gitlab-ci.yml
文件如下所示:
My .gitlab-ci.yml
file looks like this:
anomalydetector:
image: continuumio/miniconda:4.7.10
stage: build
tags:
- docker
script:
- conda env create -f environment.yml
- conda activate my-env
- pytest tests/.
在 Gitlab 上,这项工作开始正常,并且读取了日志
On Gitlab, this job starts fine, and the logs read
$ conda env create -f environment.yml
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
==> WARNING: A newer version of conda exists. <==
current version: 4.7.10
latest version: 4.7.11
好的,所以我使用的是 4.4 之后的 conda
版本,所以 conda activate
应该可以工作.但是,作业失败并显示以下内容:
Ok, so I'm using a conda
version later than 4.4, so conda activate
should work. However, the job fails with the following:
# To activate this environment, use
#
# $ conda activate my-env
#
# To deactivate an active environment, use
#
# $ conda deactivate
$ conda activate my-env
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
然后我尝试编辑我的 .gitlab-ci.yml
文件以便有一个命令
I have then tried editing my .gitlab-ci.yml
file so that there is a command
conda init bash
然后得到消息
==> For changes to take effect, close and re-open your current shell. <==
如何在 gitlab CI 进程中激活我的 conda 环境?
How can I activate my conda environment in the gitlab CI process?
解决方案
conda init
触及 .bashrc
文件.要重新初始化 shell,您可以获取它:
conda init
touches the .bashrc
file. To reinitialize the shell you can source it:
- conda create --name myenv
- conda init bash
- source ~/.bashrc # <- !!!
- conda activate myenv
我猜这是否比 source activate myenv
更好或更差是一个单独的讨论.
Whether this is better or worse than source activate myenv
is a separate discussion, I guess.
相关文章