让 tmux windows 继承 `activate`d anaconda 环境

Tom*_*ale 5 python environment tmux anaconda miniconda

为方便起见,考虑到activate-ing 一个环境非常慢,我想激活一个环境然后开始一个tmux会话。

我希望所有新tmux窗口也激活环境。

我希望不同的tmux会话能够支持不同的 anaconda 环境。

我该怎么做?

是否有任何问题导致anaconda/不支持miniconda

jco*_*ado 5

我为解决这个问题所做的是:

  • .tmux.conf,将CONDA_DEFAULT_ENV环境变量复制到会话环境中
    set-option -ga update-environment 'CONDA_DEFAULT_ENV'
    
    Run Code Online (Sandbox Code Playgroud)
  • 在 中.bashrc,重新激活 conda 环境(如果已激活):
    if [ -n "$CONDA_DEFAULT_ENV" ]; then                                                                                                                                         
        __conda_reactivate                                                                                                                                                       
    fi
    
    Run Code Online (Sandbox Code Playgroud) 注 1:这假设__conda_reactivate由于conda init或类似原因可用。注 2:在旧版本的 conda 中,它是_conda_reactivate(只有一个前导下划线)。

这比创建不同的 tmux 会话更快conda activate <env>,并且可以在创建不同的 tmux 会话之前使用不同的环境。