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



所以我有一个生成动画的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点,我有点绝望。

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

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

添加此项而不是conda activate myenv

当您试图激活一个环境来启动脚本时,您也可以通过使用python中的subprocess模块来制作一个启动脚本来完成所需的任务。

尝试制作demo.py脚本,如:

import os
import system
import subprocess
import x
subprocess.run(["command name", "value"]) #for all scripts you want to execute

然后您可以在启动时运行这个python脚本。您可以在不通知系统速度变化的情况下启动大量操作,并且始终可以通过在两次调用之间使用time.sleep()一个接一个地启动进程来轻松监控。

最新更新