Ubuntuデスクトップショートカットでconda環境をアクティブ化する

Jan 29 2020

次の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ます。

Linuxデスクトップショートカットからconda環境をアクティブ化することは可能ですか?

回答

lebedov Apr 24 2020 at 22:32

conda初期化行がすでに自分の.bashrcファイルにあると仮定すると、新しいbashセッションを開始することにより、アクティブ化された環境でコマンドを実行できます。

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