从 bash 脚本启动终端和“conda activate env”

从 bash 脚本启动终端和“conda activate env”

我在这里看到了一些类似的问题,但它们没有涵盖这个特定的用例,而且我无法独自使其工作。

我正在尝试执行以下操作使用脚本

  1. 在特定目录中打开一个新终端(并保持打开状态)
  2. 在该终端中激活特定的 conda 环境
  3. 也从该终端启动我的 IDE (atom)

我试过这个:

#!/bin/sh    
gnome-terminal --working-directory=~/Desktop/Atom/myEnv/ -e 'conda activate myEnv && atom'

但收到此错误消息:

无法执行子进程“conda”(没有这样的文件或目录)

我还尝试了以下代码,这会导致 conda 未找到错误:

#!/bin/sh
eval "$(conda shell.bash hook)"
conda activate myEnv
bash -i

以下代码打开一个终端并显示该环境的预期 python 版本,但不会将激活转移到“bash -i”窗口:

#!/bin/bash
source ~/miniconda3/bin/activate myEnv
python --version
bash -i

请告诉我是否有一种简单的方法可以完成此任务。

答案1

您可以使用bashzsh或任何 shell别名为此目的。你只需添加

alias my_conda='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38'

行插入.bashrc,.zshrc.any_other_shell_rc

“注意我的环境名称是MyPy38。因此,根据名称和路径替换它/home/$USER/anaconda3。您还可以为别名创建单独的文件。只需创建一个名为.bash_aliases并添加的文件

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

行到.bashrc,.zshrc.any_other_shell_rc并保留命令

alias my_conda='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38'

进入.bash_aliases。现在,source ~/.zshrc ~/.bashrc或者只是关闭并打开一个新终端。运行命令my_conda繁荣!

此外,您还可以添加一些其他别名jupyter-notebook jupyter-lab spyder等,例如

# Just activate my conda
alias my_conda='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38'

# Open Jupyter Notebook in my Env
alias my_jupn='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38 && jupyter-notebook'

# Open Jupyter Lab in my Env
alias my_jupl='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38 && jupyter-lab'

# Open Spyder in my Env
alias my_spyder='source /home/$USER/anaconda3/bin/activate && conda activate MyPy38 && spyder'

确认活动环境名称 python 代码

import sys
print(sys.executable)

相关内容