繁体   English   中英

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

[英]Activating conda environment in bash script that runs on startup

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

#!/bin/bash

conda activate myenv
cd ~/scripts
python generate.py

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

conda: command not found

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

我尝试在bash脚本中添加行,用“source activate”替换“conda activate”,我尝试添加echo ". /home/<user>/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc到bash脚本,用/home/barrat/anaconda3/bin/conda替换“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()启动进程来轻松监视它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM