在启动时运行的 bash 脚本中激活 conda 环境
Activating conda environment in bash script that runs on startup
所以我有一个生成动画的 python 脚本 - 它需要我在 conda 环境中拥有的库。我需要在我的计算机打开后立即 运行 这个脚本,所以我写了一个简短的 bash 脚本并添加到 "startup applications"。此 bash 脚本在启动时 运行s,内容如下:
#!/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 脚本中,替换"conda" 和 /home/barrat/anaconda3/bin/conda
,甚至将 whoami
添加到启动时 运行 的 bash 脚本,以确保我没有偶然神奇地成为 root ... none 这行得通。我会 真的 感谢任何帮助。现在是凌晨 3 点,我有点绝望。
当您尝试激活一个环境来启动您的脚本时,您也可以使用 [=20= 中的 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()
一个接一个地启动进程来轻松监控它。
您可能已经解决了这个问题,但对于未来的观众来说,这对我有用:
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 脚本 - 它需要我在 conda 环境中拥有的库。我需要在我的计算机打开后立即 运行 这个脚本,所以我写了一个简短的 bash 脚本并添加到 "startup applications"。此 bash 脚本在启动时 运行s,内容如下:
#!/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 脚本中,替换"conda" 和 /home/barrat/anaconda3/bin/conda
,甚至将 whoami
添加到启动时 运行 的 bash 脚本,以确保我没有偶然神奇地成为 root ... none 这行得通。我会 真的 感谢任何帮助。现在是凌晨 3 点,我有点绝望。
当您尝试激活一个环境来启动您的脚本时,您也可以使用 [=20= 中的 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()
一个接一个地启动进程来轻松监控它。
您可能已经解决了这个问题,但对于未来的观众来说,这对我有用:
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
。