Активация conda среда в “сценарии” приложений запуска

Таким образом, у меня есть сценарий Python, который генерирует анимацию - и это требует библиотек, которые я имею в conda среде. Я должен запустить этот скрипт, как только мой компьютер включает, таким образом, я записал короткий сценарий удара, который я добавил к "приложениям запуска". Этот сценарий удара работает на запуске и читает как это:

#!/bin/bash

conda activate myenv
cd ~/scripts
python generate.py

Когда я выполняю это в терминале сам, это прекрасно, но каждый раз, когда я включаю компьютер, часть Python сценария не выполняется, и когда я проверяю ошибки, я нахожу:

conda: command not found

и затем я также вижу, что сценарию Python не удалось работать, потому что он пропускает библиотеки (от conda среды, не активируясь)

Я попытался добавить, что строки к сценарию удара, заменяющему "conda, активируются" с "источником, активируются", я попытался добавить echo ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc к сценарию удара, заменяя "conda" с /home/barrat/anaconda3/bin/conda, и даже добавление whoami к сценарию удара, который работает при запуске, чтобы удостовериться, что я волшебно не стал корнем случайно..., ни одно из этого не работало. Я был бы очень признателен за любую справку. это - 3:00, и я являюсь немного отчаянным.

2
задан 1 February 2019 в 14:10

1 ответ

Я прокомментировал бы, но у меня нет достаточной репутации так же вместо этого, я пишу свое предположение здесь как ответ.

conda init добавил следующие строки к самому концу моего .bashrc

# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/<user>/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/<user>/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/<user>/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        export PATH="/home/<user>/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

Я не уверен, что точно это делает, но так или иначе это, кажется, добавляет conda к пути. (Также это правильно настраивает Вашу оболочку для использования conda activate, по-видимому)

Если Ваш скрипт запущен, прежде чем conda "инициализируется" теми строками, возможно, Ваш удар не знает то, что conda в то время. Так жалуется conda: command not found

Вы могли попытаться выполнить эти строки перед своим сценарием и видеть, работает ли он.

2
ответ дан 2 December 2019 в 03:29

Другие вопросы по тегам:

Похожие вопросы: