使用 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
。
我在一些 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
。