在Travis CI上激活conda

时间:2019-03-25 16:15:25

标签: bash shell anaconda travis-ci conda

我正在使用conda 4.6.8在Travis CI的conda env中测试python软件包。我想在Travis CI配置中用新的overflow-y command替换旧的<div class="timeline" [ngStyle]="{'left':getXPos() + '%', 'transition': 'all 0.5s ease'}"> <div *ngFor="let date of dates; let i = index" class="date"> <div class="goal_wrap goal_real_estate {{i === clickIndex ? 'active bounce' : ''}}" (click)="selectStage(i)"> <i class="fa fa-building" aria-hidden="true"></i> </div> <p class="focus"> <a href="#">{{date}}</a> </p> </div> </div> 行。如果我在Travis上运行它:

source activate ENVNAME

如何在Travis上“关​​闭并重新打开”我的外壳?因为否则我将无法激活我的conda环境:

conda activate ENVNAME

1 个答案:

答案 0 :(得分:1)

不确定当前是否支持它作为官方文档still uses source in travis.yml

conda init做什么?

此新命令应协调用户设置外壳程序以调用conda activate的方式。

实际上,如果您运行conda init --dry-run --verbose,您会看到它尝试从conda.sh来获取~/.bashrc(假设您正在运行Bash,则来自问题中提到的信息)。< / p>

然后conda.sh将定义一个conda()函数,该函数将捕获一些命令,其中activatedeactivate并分发到$CONDA_EXE

conda() {
    if [ "$#" -lt 1 ]; then
        "$CONDA_EXE"
    else
        \local cmd="$1"
        shift
        case "$cmd" in
            activate|deactivate)
                __conda_activate "$cmd" "$@"
                ;;
            install|update|upgrade|remove|uninstall)
                "$CONDA_EXE" "$cmd" "$@" && __conda_reactivate
                ;;
            *) "$CONDA_EXE" "$cmd" "$@" ;;
        esac
    fi
}

因此,除非在本地外壳程序中定义了此函数,否则您将无法调用conda activate

提示解决方案? (未经Travis CI测试

我可以建议的唯一提示是先尝试source $(conda info --root)/etc/profile.d/conda.sh,然后尝试conda activate。该操作应与conda init大致相同,假设您使用的是Bourne Shell导数

对于csh,有$(conda info --root)/etc/profile.d/conda.csh,对于fish,有$(conda info --root)/etc/fish/conf.d/conda.fish

注意:尽管未针对Travis CI进行过测试,但该解决方案对bash而言对我有效。当然,应该在PATH中找到conda可执行文件,以使conda info --root正常工作。