在Anaconda环境之间自动切换

时间:2017-02-16 22:31:31

标签: python bash anaconda

我正在使用Anaconda 4.3.11和Linux(Ubuntu Server),并且需要找到一种在Anaconda环境之间自动切换的方法(因为不兼容的软件包版本:我在处理的第一部分需要gdal 2.1.0 ,以及第二部分中的gdal 2.1.3

因此,对于我需要env1的第一个处理步骤,对于第二部分,我需要env2

手动输入source activate env1可以正常工作。但我需要将我的脚本作为cronjobs运行,所以这不是一个选项。

我尝试了以下bash脚本:

#!/bin/bash
source activate sen2cor
conda info --envs

据我所知,由于source以及尝试在子shell中使用它(或类似的东西)存在一些问题,因此无法正常工作。

但是必须有一种自动切换环境的方法,不是吗?

2 个答案:

答案 0 :(得分:1)

如果您尝试使用不同的虚拟环境运行脚本,则无需切换到该环境。你可以使用必需的python可执行文件的绝对路径。

E.g。

#!/bin/bash
/Users/you/.virtualenvs/env1/bin/python script1.py
/Users/you/.virtualenvs/env2/bin/python script2.py

答案 1 :(得分:1)

你的方法应该可以在cron作业中激活一个conda env,你只需要像你在常规会话中那样添加到你的PATH(或者你的~~) /.bash*配置文件)。

基本上,就像:

PATH=/home/roland/anaconda2/bin:$PATH
source activate sen2cor