Как выполнить сценарий в виртуальной среде из сценария bash на сервере? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь запустить сценарий python в виртуальной среде на сервере, используя oarsub:

Итак, сначала я запускаю эту команду с именем сервера "a":

oarsub -l /host=1/gpu=1,walltime=2:00:00 './training_corpus1.sh'

training_corpus1. sh выглядит так в начале:

#!/bin/bash

cd /home/ge/ke/anaconda3/envs

source activate env

cd ~/eXP/bert

CUDA_VISIBLE_DEVICES=0,1 python training.py \
    --exp_name bert \ ...

В начале я должен открыть свою виртуальную среду и затем запустить скрипт, но я всегда получаю эту ошибку в OAR .18651.stderr file:


./training_corpus1.sh: line 5: activate: No such file or directory
Traceback (most recent call last):
  File "training.py", line 18, in <module>
    from xlm.slurm import init_signal_handler, init_distributed_mode
  File "/home/ge/ke/eXP/bert/xlm/slurm.py", line 11, in <module>
    import torch
ImportError: No module named torch


Факел находится в моей виртуальной среде, кажется, что он не открылся. При использовании "conda" вместо "source" я получаю:

./training_corpus1.sh: line 5: conda: command not found

1 Ответ

0 голосов
/ 10 марта 2020

Для виртуальной среды и bash команда активации:

source env/bin/activate

, где env - каталог виртуальной среды для активации.

PS. Позвольте мне посоветовать вам запустить любой скрипт с set -e, чтобы разрешить быстрый сбой при любой ошибке:

#!/usr/bin/env bash
set -e
…
...