所以我有一个生成动画的 Python 脚本 - 它需要我在 conda 环境中拥有的库。我需要在计算机打开时立即运行此脚本,因此我编写了一个简短的 bash 脚本,并将其添加到“启动应用程序”中。此 bash 脚本在启动时运行,内容如下:
#!/bin/bash
conda activate myenv
cd ~/scripts
python generate.py
当我自己在终端中运行这个程序时,一切正常,但是每当我打开电脑时,脚本的 python 部分都不会执行,当我检查错误时,我发现:
conda: command not found
然后我还看到 Python 脚本运行失败,因为它缺少库(因为 conda 环境未激活)
我尝试在 bash 脚本中添加行,将“conda activate”替换为“source activate”,尝试echo ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc
在 bash 脚本中添加行,将“conda”替换为/home/barrat/anaconda3/bin/conda
,甚至whoami
在启动时运行的 bash 脚本中添加行,以确保我不会偶然成为 root 用户……但这些都没有奏效。我会真的感谢任何帮助。现在是凌晨 3 点,我有点绝望。
答案1
我想发表评论,但我没有足够的声誉,所以我在这里写下我的猜测作为答案。
conda init 在我的 .bashrc 的最后添加了以下几行
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/<user>/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/<user>/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/<user>/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
export PATH="/home/<user>/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
我不确定它到底做了什么,但不管怎样,它似乎将 conda 添加到路径中。(conda activate
显然,它还正确配置了你的 shell 以使用)
如果你的脚本在 conda 被这些行“初始化”之前运行,那么你的 bash 可能不知道当时 conda 是什么。所以抱怨conda: command not found
您可以尝试在脚本之前运行这些行,看看它是否有效。