4

我是奇异性的新手,我想myenv在奇异性配方中激活一个 conda 环境 (),以便在其中安装一个包 ( mypkg)。我已经阅读了一些相关的帖子,但答案并没有解决我的问题,尽管问题非常相似(在 Nextflow 中执行 Singularity 容器时激活 conda 环境如何在 Singularity 配方中激活 Anaconda 环境,Nipype docker 构建 Singularity 配方图像 CommandNotFound)。你能帮我找到我错过的东西吗?

在我的情况下,myenv当我执行容器时会自动激活,但在构建容器以安装时我没有成功激活它mypkg。我没有任何错误消息,但软件包安装在基本环境中,而不是myenv.

Bootstrap: docker
From: ubuntu:18.04

%files
    myenv.yml

%environment
    export LC_ALL=C
    export LC_NUMERIC=en_GB.UTF-8
    export PATH="/opt/miniconda/bin:$PATH"
    export PATH="/opt/miniconda/envs/$(head -1 myenv.yml | cut -d' ' -f2)/bin:$PATH"

%runscript
    exec "$@"

%post
    # miniconda2: get miniconda2 version 4.5.1
    wget https://repo.continuum.io/miniconda/Miniconda2-4.7.12.1-Linux-x86_64.sh -O miniconda.sh

    #install conda
    bash miniconda.sh -b -p /opt/miniconda
    export PATH="/opt/miniconda/bin:$PATH"

    #install conda env.yml file
    echo ". /opt/miniconda/etc/profile.d/conda.sh" >> $SINGULARITY_ENVIRONMENT
    echo "conda activate $(head -1 myenv.yml | cut -d' ' -f2)" >> $SINGULARITY_ENVIRONMENT
    /opt/miniconda/bin/conda env create -f myenv.yml

    # Activate conda env, clone and install mypkg
    . /opt/miniconda/bin/activate myenv &&
    git clone https://github.com/mypkg.git &&
    cd mypkg&&
    python setup.py install

4

1 回答 1

0

而不是. /opt/miniconda/bin/activate myenv尝试使用:

. /opt/conda/etc/profile.d/conda.sh
conda activate myenv

直接使用函数得到更好的支持。

于 2020-02-03T14:25:08.487 回答