使用 conda 激活或在 bash 脚本中指定 python 路径?

Using conda activate or specifying python path in bash script?

我在一些 Linux 集群上使用 SGE 或 SLURM 运行 一些 python 脚本。我已经使用登录节点正确设置了我的 conda 环境。我一直在写类似

的东西
source ~/.bashrc
module purge #Kill all active modules
conda init bash
conda deactivate
conda deactivate
conda activate my_env

python my_script.py

正确激活环境。 (我做了很多工作来解决这个问题)但是,我只是找到了一些示例代码,例如

/anaconda3/envs/my_env/bin/python my_script.py

似乎不​​需要繁琐的停用和激活就可以做同样的事情。他们实际上在做同样的事情吗?如果是这样,哪种做法更好?

通常通过 conda run 子命令更好地使用环境执行程序。例如,

my_slurm_script.sh

#!/bin/bash -l
conda run -n my_env python my_script.py

阅读 conda run --help 了解详情。

当您激活环境时,它只是将python可执行文件更改为/anaconda3/envs/my_env/bin/python而不是系统的python可执行文件/usr/bin/python 通俗地说。

更好的方法是使用 conda 的内置方法 conda run -n env_name script.py