2017-02-16 2 views
1

Я использую Anaconda 4.3.11 и Linux (сервер Ubuntu), и вам нужно найти способ автоматического переключения между средами Anaconda (из-за несовместимых версий пакета: мне нужно gdal 2.1.0 в первой части моего обработка и gdal 2.1.3 во второй части).Автоматическое переключение между средами Anaconda

Так что для первых этапов обработки мне нужно env1, для второй части мне нужно env2.

Вручную печатать source activate env1 работает отлично. Но мне нужно запускать мои скрипты как cronjobs, так что это не вариант.

Я попытался следующий Баш скрипт:

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

Я понимаю, что это не будет работать из-за source и некоторые проблемы с попытками использовать его в субоболочке (или что-то в этом роде).

Но должен быть способ автоматического переключения окружения, не так ли?

+0

Я предполагаю, что вы имеете в виду ** 'Конда Информация о --envs' **, а не' Конда список --envs'? –

+0

Правильно, это 'conda info --envs'! – Roland

ответ

1

Ваш подход должен работать нормально для активации Конда окр в хрон, вам просто нужно добавить к вашему PATH таким же образом, что вы бы в очередной сессии (или как это делается в вашем ~ /.bash*).

В принципе, так же, как:

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

Отлично, я использовал ваш подход в скрипте оболочки, который запускается как задание cron, и который сам запускает мой скрипт python. Благодаря! – Roland

1

Если вы пытаетесь запустить скрипты с разными виртуальными средами, вам не нужно переключаться на эту среду. Вы можете просто использовать требуемый абсолютный путь исполняемого файла python.

E.g.

#!/bin/bash 
/Users/you/.virtualenvs/env1/bin/python script1.py 
/Users/you/.virtualenvs/env2/bin/python script2.py 
Смежные вопросы