問題の説明:
Linux システムを使用している場合、時間を節約するためにスクリプトを使用して複数のコマンドを実行したい場合があります。anaconda がインストールされている場合は、環境を切り替えるか、conda 環境を閉じる必要があります。ターミナル
conda activate xxx
また
conda deactivate
環境をアクティブにして環境を閉じるには、このコマンドを次のように .sh スクリプト ファイルに直接入力します。
#!/bin/bash
# 退出当前的conda环境
conda deactivate
実行は失敗し、エラー内容は次のようになります。
CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.
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 deactivate
上記のエラー内容は、シェルがコマンドを使用するように適切に設定されていないことを意味します。これを修正するには、Bash シェルで Conda を初期化するために彼が書いた手順に従ってください。
conda init bash
しかし実際には、実行しても端末を再起動しても効果はなく、エラーは同じままです。
上記の問題を解決するのは簡単です
解決:
スクリプトでは、まず anaconda ディレクトリをソースします。スクリプト anaconda3/etc/profile.d/conda.sh を使用して Conda の初期化スクリプトをロードし、コマンドが正常に動作できるようにしますconda deactivate
。
#!/bin/bash
# 加载 Conda 的初始化脚本
source /home/(你的用户名)/anaconda3/etc/profile.d/conda.sh
# 退出当前的conda环境
conda deactivate
# 检查是否已经退出conda环境
if [ -z "$CONDA_PREFIX" ]; then
echo "Conda environment is deactivated."
else
echo "Failed to deactivate Conda environment."
exit 1
fi
上記のスクリプトは、まず anaconda ディレクトリに変更してから、if コマンドを使用して conda 環境を終了したかどうかをフィードバックし、テストを実行します。
フィードバック情報を見ると、非常にスムーズであることがわかります。テストに合格し、問題がなければ、後から命令を追加し続けることができます。たとえば、最初に conda 環境を閉じてから実行したいとします。 ROSコマンド
もちろん、conda環境を非アクティブ化/閉じるだけでなく、他の環境をアクティブ化/アクティブ化する場合も同様の方法です