在启动时运行的 bash 脚本中激活 conda 环境

Rob*_*rat 5 python bash environment startup conda

所以我有一个生成动画的 python 脚本 - 它需要我在 conda 环境中拥有的库。我需要在计算机打开后立即运行此脚本,因此我编写了一个简短的 bash 脚本,并将其添加到“启动应用程序”中。这个 bash 脚本在启动时运行,内容如下:

#!/bin/bash

conda activate myenv
cd ~/scripts
python generate.py
Run Code Online (Sandbox Code Playgroud)

当我自己在终端中运行它时,这很好,但是每当我打开计算机时,脚本的 python 部分都不会执行,当我检查错误时,我发现:

conda: command not found
Run Code Online (Sandbox Code Playgroud)

然后我还看到 python 脚本无法运行,因为它缺少库(来自未激活的 conda 环境)

我尝试在 bash 脚本中添加行,用“源激活”替换“conda activate”,我尝试添加echo ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc到 bash 脚本,用 替换“conda” /home/barrat/anaconda3/bin/conda,甚至添加whoami到在启动时运行的 bash 脚本以确保我不是偶然神奇地成为 root 的……这一切都没有奏效。我真的很感激任何帮助。现在是凌晨 3 点,我有点绝望。

小智 9

您可能已经解决了这个问题,但对于未来的观众来说,这对我有用:

if [ -f "/path/to/anaconda3/etc/profile.d/conda.sh" ]; then
    . "/path/to/anaconda3/etc/profile.d/conda.sh"
    CONDA_CHANGEPS1=false conda activate myenv
fi
Run Code Online (Sandbox Code Playgroud)

添加这个而不是conda activate myenv.