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

时间:2019-02-01 11:11:10

标签: python bash conda startup environment

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-2)

当您尝试激活环境以启动脚本时,还可以使用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()依次启动进程来轻松地对其进行监视。