tmux 导致 anaconda 使用不同的 python 源

tmux 导致 anaconda 使用不同的 python 源

好的,我在 anaconda 环境中运行了 which python.我明白了

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

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

/home/comp/anaconda3/bin/python

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

答案1

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

答案2

我遇到了同样的问题,但我真的不喜欢任何解决方案,因为它们涉及每次加载到tmux.因此,我将以下内容添加到我的.tmux.conf

重要编辑:此代码对我有用,因为我当前正在运行 zsh shell,这是存储我的设置的位置。您的标准 shell 可能有所不同,要查找您的 shell 位置,请使用该命令echo "$SHELL"并将我的答案中的 替换/bin/zsh为您自己的 shell 路径。

set -g default-command "/bin/zsh"

完成后,只需为您的.tmux.conf文件提供资源即可激活更改。这应该允许tmux加载您在.bash_profileConda 中拥有的任何设置。

答案3

此行为是由 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。请参阅链接问题的答案。

答案4

启动 Tmux 会话后(没有 conda 具有任何活动环境),我会发生以下情况。

当我第一次在 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指向正确的路径。

相关内容