在shell脚本里面调用conda创建的环境
admin
2024-02-04 07:32:12

事情源于,我在写脚本的时候,在脚本里面插入了一句 conda activate 环境名, 然后出现如下的报错提示

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run$ conda init Currently supported shells are:- bash- fish- tcsh- xonsh- zsh- powershellSee 'conda init --help' for more information and options.IMPORTANT: You may need to close and restart your shell after running 'conda init'.

conda认为我没有初始化环境,我脚本是在bash环境下运行的,我也用conda init bash初始化过。因此,问题肯定不是出在这里。

利用关键词"conda activate in bash script"检索,我找到了两种解决方法。

方法1: 在脚本中多加一句

source $HOME/miniconda/etc/profile.d/conda.sh

注意,我的conda是安装在家目录下的miniconda目录中,对于非家目录的安装方式,要修改 $HOME/miniconda

方法2: 我们可以通过 conda run 来运行给定环境下的命令,假如,我们安装了一个环境rna-seq, 里面有一个程序叫做STAR, 我们可以随便写一个tmp.sh脚本,内容为

conda run -n rna-seq STAR --help

那么,此时运行 bash tmp.sh 就不会报错。也就是说,你并不是一定要用conda activate 启动环境,才能调用命令,你其实可以调用某个环境的给定指令。

方法2相对于方法1有个非常大的优势,那就是,如果你有多个不同python版本的环境,你不用担心写脚本的时候写了启动,但是忘了写退出。你只需要在原来的代码前加上一句, conda run -n 环境名

  • calling conda source activate from bash script
  • activating conda environment in within a shell script

相关内容

热门资讯

理财变“踩雷”!“券业一哥”中...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!   理财变“踩雷”!...
无导航手术“摸黑”探路,破解八... 转自:扬子晚报近日,江苏省人民医院(南京医科大学第一附属医院、江苏省妇幼保健院)龙江院区收治了一位8...
航行警告:南海部分海域进行火箭...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:界面新闻)据...
“老人疑与城管队员争执后被推倒... 12月25日,福建福安市公安局发布警情通报:据澎湃新闻此前报道,近日,有网友发布视频称,福建省福安市...
中越青年代表齐聚云端 畅想交流... 中新网上海12月25日电 (记者 陈静)2025年是中国和越南建交75周年,也是中越人文交流年。复旦...