解决Linux下无法利用shell脚本启动conda虚拟环境问题
问题直接在脚本中激活conda环境时遇到了一个问题
- 查看.bashrc文件
.bashrc文件在 /home/用户名 里面,因为是隐藏文件,所以可以使用ctrl+h来查看。在.bashrc文件中查看是否有 # >>> conda initialize >>> ,这个就是conda的环境设置。
- 如果缺少conda环境配置
假如你使用的shell是bash,你直接在shell中运行
conda init bash
这时会跳出提醒让你重启shell,重启,这时你会发现已经自动启动了base虚拟环境。至此问题解决。
回到刚刚的.bashrc文件,我们会发现文件中多了
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/charles/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/charles/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/charles/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/charles/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
- 如果还没解决
- 创建一个run.sh文件,将.bashrc文件中的conda 相关内容(如上一步所示)复制到.sh文件中
- 在上面的基础上,增加启动虚拟环境,如conda activate 虚拟环境名,和自己的启动内容,形成如下的sh文件
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/charles/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/charles/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/charles/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/charles/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# conda启动虚拟环境
conda activate deeplearn
# 在指定的虚拟环境中启动特定脚本
cd /home/charles/DL_YOLO/pythonProject
python testmain.py
exit 0



