我第一次在大学的集群上运行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。
无论如何,第一种方法似乎确实有效。