Aktivieren Sie die Conda-Umgebung in der Ubuntu-Desktopverknüpfung

Jan 29 2020

Ich habe eine Desktop-Verknüpfung mit der folgenden ExecZeile:

Exec=conda activate my_env && my_command

Diese Verknüpfung wird jedoch nicht gestartet. Um dies zu debuggen, habe ich denselben Befehl in einer Bash-Eingabeaufforderung ohne ausgeführt .bashrc(da er .bashrcnicht für Desktop-Verknüpfungen verwendet wird).

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'.

Das Problem ist, dass conda nicht erkennt, dass es bereits initialisiert wurde. conda initerstellt einen Eintrag in .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 <<<

Ich habe versucht, diesen Eintrag in meinen zu kopieren .profileund mich erneut anzumelden, aber es hat immer noch nicht funktioniert. Der Versuch, stattdessen nach conda initinnen zu gehen, .profiledupliziert nur den obigen Eintrag in .bashrc.

Ist es möglich, eine Conda-Umgebung über eine Linux-Desktop-Verknüpfung zu aktivieren?

Antworten

lebedov Apr 24 2020 at 22:32

Angenommen, die Conda-Initialisierungszeilen befinden sich bereits in der .bashrcDatei, kann ein Befehl in einer aktivierten Umgebung ausgeführt werden, indem eine neue Bash-Sitzung gestartet wird:

Exec=bash -c "source ~/.bashrc && conda activate matlab_env && matlab"