如何在虚拟环境中从服务器上的bash脚本执行脚本?

2024-06-02 08:39:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用oarsub在服务器的虚拟环境中运行python脚本:

首先,我以服务器名“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文件中遇到这个错误:


./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


火炬位于我的虚拟环境中,似乎没有打开。当使用“康达”作为“来源”的位置时,我得到:

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

Tags: py服务器脚本homeshlinetrainingcd
1条回答
网友
1楼 · 发布于 2024-06-02 08:39:51

对于虚拟环境和bash,激活命令为

source env/bin/activate

其中env是要激活的虚拟环境的目录

另外,我建议您使用set -e启动任何脚本,以允许在出现任何错误时快速失败:

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

相关问题 更多 >