pythonアニメーションを生成するスクリプトがあり、conda環境にあるライブラリが必要です。コンピュータの電源が入ったらすぐにこのスクリプトを実行する必要があるので、 「起動アプリケーション」に追加した短いbashスクリプトを記述しました。このbashスクリプトは起動時に実行され、次のように表示されます。
#!/bin/bash
conda activate myenv
cd ~/scripts
python generate.py
これをターミナルで自分で実行する場合は問題ありませんが、コンピュータの電源を入れるたびにpythonスクリプトの一部が実行されず、エラーを確認すると次のようになります。
conda: command not found
また、pythonスクリプトが実行に失敗したこともわかります。これは、(conda環境がアクティブ化されていないために)ライブラリがないためです。
「conda activate」を「source activate」で置き換えるbashスクリプトに行を追加してみました。bashスクリプトにecho ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc
を追加し、「conda」を/home/barrat/anaconda3/bin/conda
で置き換え、さらにwhoami
を起動時に実行するbashスクリプトに追加して、偶然に魔法のようにrootにならないようにしています...これはどれも機能していません。私は本当にどんな助けにも感謝します。それは午前3時で、私は少し必死です。
私はコメントしますが、十分な評判がないので、代わりにここに私の推測を答えとして書いています。
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 activate
を使用するようにシェルを正しく構成します)
それらの行によってcondaが「初期化」される前にスクリプトが実行される場合、おそらくbashはその時点でcondaが何であるかを認識していません。だから文句を言うconda: command not found
スクリプトの前にこれらの行を実行して、機能するかどうかを確認できます。