r语言 - 从 bash 脚本激活蟒蛇



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

我做了很多搜索,找到了这篇文章:Conda 命令在命令提示符下工作,但不在 bash 脚本中工作

所以我把我的~/.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。

$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

我试图记住我在哪里找到这个,但是有一段代码,我不明白它的作用,但这解决了问题。

eval "$(conda shell.bash hook)"

或者,使用

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

或者,您也可以尝试在提交脚本中获取 .bashrc。

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

最新更新