在日常炼丹过程中,希望模型训练可以后台运行,这样不用担心训练中断,本文希望给大家帮助,这篇文章主要向大家介绍解决shell脚本不能激活conda环境,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
一、问题场景
之前突发其想,既然在命令行可以通过conda activate tf激活tf的虚拟环境,那么能不能写个脚本实现呢? 费了好大劲,发现并不行,比如,新建一个con.sh脚本,里面只写一句。 我正在尝试通过bash脚本激活我的conda env.即使脚本运行正常,并且我的PATH在脚本中似乎已更改,但在脚本终止后仍会以某种方式重置.我可以从cmd行调用source activate test,它可以正常工作。
我想写个bash脚本激活Python环境, 使用train.py进行训练。
conda activate tf
python train.py
二、问题描述
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If your shell is Bash or a Bourne variant, enable conda for the current user with$ echo ". /home/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc
or, for all users, enable conda with
$ sudo ln -s /home/anaconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh
The options above will permanently enable the 'conda' command, but they do NOT
put conda's base (root) environment on PATH. To do so, run$ conda activate
in your terminal, or to put the base environment on PATH permanently, run
$ echo "conda activate" >> ~/.bashrc
Previous to conda 4.4, the recommended way to activate conda was to modify PATH in
your ~/.bashrc file. You should manually remove the line that looks likeexport PATH="/home/anaconda3/bin:$PATH"
^^^ The above line should NO LONGER be in your ~/.bashrc file! ^^^
三、解决方案
用conda init bash也不行
找到.bashrc文件, 我若有所思, 粘贴了两段代码
###
# @Descripttion:
# @version: 1.0
# @Author: HopeKing
# @Date: 2020-08-20 11:24:21
# @LastEditors: HopeKing
# @LastEditTime: 2020-09-14 14:48:15
# @Software:: Visual Studio Code
# @FilePath: train.sh
###
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/home/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/home/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
conda activate tf
CUDA_VISIBLE_DEVICES=0 python train.py
四、参考网址: