美文网首页js css html编程
在脚本里面调用conda创建的环境

在脚本里面调用conda创建的环境

作者: xuzhougeng | 来源:发表于2022-11-20 09:06 被阅读0次

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

    CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
    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认为我没有初始化环境,我脚本是在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 环境名

    相关文章

      网友评论

        本文标题:在脚本里面调用conda创建的环境

        本文链接:https://www.haomeiwen.com/subject/tkoixdtx.html