Активируйте среду conda в ярлыке рабочего стола Ubuntu
У меня есть ярлык на рабочем столе со следующей Execстрокой:
Exec=conda activate my_env && my_command
Однако этот ярлык не запускается. Чтобы попытаться отладить это, я выполнил ту же команду в командной строке bash без .bashrc(так .bashrcкак не получает ярлыков на рабочем столе),
user@pc:~$ bash --norc bash-4.4$ conda activate my_env
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
Проблема в том, что conda не обнаруживает, что она уже была инициализирована. conda initсоздает запись в .bashrc:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/user/anaconda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then eval "$__conda_setup"
else
if [ -f "/home/user/anaconda/etc/profile.d/conda.sh" ]; then
. "/home/user/anaconda/etc/profile.d/conda.sh"
else
export PATH="/home/user/anaconda/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
Я попытался скопировать эту запись на свой .profileи снова вошел в систему, но это все равно не сработало. Попытка вместо этого conda initвнутри .profileпросто дублирует приведенную выше запись в .bashrc.
Можно ли активировать среду conda с помощью ярлыка на рабочем столе Linux?
Ответы
Предполагая, что строки инициализации conda уже находятся в одном .bashrcфайле, можно запустить команду в активированной среде, запустив новый сеанс bash:
Exec=bash -c "source ~/.bashrc && conda activate matlab_env && matlab"