tmux导致水蟒使用不同的python源


11

好的,所以我在anaconda环境中,运行了哪个python。我懂了

/home/comp/anaconda3/envs/env1/bin/python

现在,如果我启动tmux,然后运行source activate env1,那么我会得到哪个python

/home/comp/anaconda3/bin/python

即使我确实激活了我的环境。我如何让Anaconda在tmux内部看到相同的路径?

Answers:


15

解决方案似乎是停用conda环境,然后启动tmux,然后重新激活tmux内部的环境。


2
奇怪的解决方案但行得通...
LYu

确实很奇怪。
ZirconCode

2
我赞成,因为这是对我有用的解决方案,但是,这确实不是理想的解决方案
johnchase

2

在启动Tmux会话后(我的conda没有任何活动的env),以下情况发生在我身上。

当我第一次在Tmux会话中执行以下操作时:

conda activate myEnv

我懂了

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

如果相反,我这样做:

source deactivate
conda activate myEnv

一切正常。which python指向正确的路径。


2

此行为是由TMux采购~/.profile而不是引起的~/.bashrc。我的~/.profile是这样的:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

你可以看到,首先 ~/.bashrc其来源和随后 ~/bin~/.local/bin前置当我经历自己时,这会导致conda启动。

解决的办法是注释掉在中操纵PATH的两个块~/.profile

编辑(2019/09/24):更好的方法似乎是配置TMux,使其不生成登录shell,而只是生成普通的shell。查看链接问题的答案。


1

运行:

conda activate env1

代替:

source activate env1

在tmux里面为我工作时。


1

我发现tmux将始终为您的shell调用配置文件,而不仅仅是rc。因此,如果像我一样使用bash,它将调用/ etc / profile,这将调用path_helper。

为了解决此问题,请更改/etc/profile为:

if [[ -z $TMUX ]] && [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

如果你使用bash,也改变任何export PATH=$PATH:/foo.bashrc

if [[ -z $TMUX ]]; then
  export PATH=$PATH:/foo
fi

然后重新启动终端(例如Iterm)。一切都应该很好!


0
nano ~/.bash_profile

添加以下行:

source deactivate env1
source activate env1

为我工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.