【问题标题】:Activate Anaconda from a bash script?从 bash 脚本激活 Anaconda?
【发布时间】:2019-08-19 21:56:17
【问题描述】:

我第一次在我大学的集群上运行 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

【问题讨论】:

标签: r bash anaconda conda


【解决方案1】:

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

eval "$(conda shell.bash hook)"

或者,您可以使用一些集群管理软件(HTCondor、Slurm...)指定使用您的家庭环境运行您的作业。

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

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

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 2021-12-27
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2021-01-18
    • 2015-06-07
    相关资源
    最近更新 更多