从bash脚本激活Anaconda?

时间:2019-03-29 01:32:53

标签: r bash anaconda conda

我是第一次在我的大学集群上运行R脚本。我正在使用Anaconda来管理我的R包。我可以从命令行成功运行脚本,但是当我使用bash脚本调用相同的代码时,出现“没有名为_____的程序包”错误。

我做了很多搜索,发现了这篇文章: Conda command working in command prompt but not in bash script

所以我从以下位置更改了〜/ .bashrc:

export PATH =“ / home / agarbuzov / anaconda2 / bin:$ PATH”

至: 。 /home/agarbuzov/anaconda2/etc/profile.d/conda.sh

那没有帮助。我没有使用conda的丰富经验-我只是在集群上运行了一些工作。任何指导将不胜感激,因为我在这里没有任何想法。

这是我的测试脚本的样子:

#!/bin/csh
#PBS -q hotel
#PBS -l nodes=1:ppn=1
#PBS -l walltime=1:00:00
#PBS -N tom_bootstraps
#PBS -o tomboot_output.txt
#PBS -e tomboot_err.txt
#PBS -V
#PBS -M ***
#PBS -m abe

source /home/agarbuzov/anaconda2/etc/profile.d/conda.sh

conda activate r_env

Rscript ~/ascripts/1_rWGCNA_bootstrap_test.R

当我调用$ conda list时,列出了我需要的所有软件包。

$conda info

     active environment : r_env
    active env location : /home/agarbuzov/anaconda2/envs/r_env
            shell level : 1
       user config file : /home/agarbuzov/.condarc
 populated config files : /home/agarbuzov/.condarc
          conda version : 4.6.8
    conda-build version : 1.21.3
         python version : 2.7.15.final.0
       base environment : /home/agarbuzov/anaconda2  (writable)
           channel URLs : https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/agarbuzov/anaconda2/pkgs
                          /home/agarbuzov/.conda/pkgs
       envs directories : /home/agarbuzov/anaconda2/envs
                          /home/agarbuzov/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.8 requests/2.21.0 CPython/2.7.15 Linux/2.6.32-696.18.7.el6.x86_64 centos/6.6 glibc/2.12
                UID:GID : 520822:10494
             netrc file : None
           offline mode : False

1 个答案:

答案 0 :(得分:0)

我想记住在哪里找到的,但是有一段代码,我不明白它的作用,但是可以解决问题。

eval $(conda shell.bash hook)

或者,使用某些群集管理软件(HTCondor,Slurm等),您可以指定在家庭环境中运行作业。

或者,您也可以尝试在提交脚本中为.bashrc来源。

无论如何,第一种方法似乎确实有效。