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

时间:2019-04-30 04:06:48

标签: python anaconda environment tmux miniconda

为方便起见,并且考虑到activate-ing an environment is crazy slow,我想激活一个环境,然后开始一个tmux会话。

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

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

我该怎么办?

是否有anaconda / miniconda不支持的陷阱?

2 个答案:

答案 0 :(得分:3)

我为解决此问题所做的事情是:

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

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

答案 1 :(得分:0)

最佳答案并不理想,正如 Tom Hale 所提到的,它相对较慢 - 特别是如果您需要多个窗格/窗口。

相反,在创建和组织新窗格的脚本中使用 CONDA_DEFAULT_ENV 变量。然后使用 tmux send-keys 在创建时激活新窗格中的原始 conda env。

请在此处查看我的回答以了解详情https://stackoverflow.com/a/66312869/8490364