tmux está fazendo com que o anaconda use uma fonte python diferente

tmux está fazendo com que o anaconda use uma fonte python diferente

Ok, então estou em meu ambiente anaconda e executei which python. eu recebo

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

Agora, se eu iniciar o tmux, execute source activate env1, então which python, eu recebo

/home/comp/anaconda3/bin/python

mesmo que eu tenha meu ambiente ativado. Como posso fazer o anaconda ver o mesmo caminho dentro do tmux?

Responder1

A solução parece ser desativar o ambiente conda, iniciar o tmux e reativar o ambiente dentro do tmux.

Responder2

Eu tive o mesmo problema, mas realmente não gostei de nenhuma das soluções, pois envolviam desativar e ativar o Conda toda vez que eu carregava o tmux. Então, em vez disso, adicionei o que está abaixo ao meu .tmux.conf:

EDIÇÃO IMPORTANTE: Este código funciona para mim, pois atualmente estou executando um shell zsh e é aqui que minhas configurações estão armazenadas. Seu shell padrão pode ser diferente. Para encontrar a localização do seu shell, use o comando echo "$SHELL"e substitua /bin/zshna minha resposta pelo seu próprio caminho do shell.

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

Uma vez feito isso, basta adicionar recursos ao seu .tmux.confarquivo e as alterações deverão ser ativadas. Isso deve permitir tmuxo carregamento de quaisquer configurações que você tenha, .bash_profileincluindo o Conda.

Responder3

Esse comportamento é causado pelo fornecimento do TMux ~/.profileem vez do ~/.bashrc. O meu ~/.profileé este:

# 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

Você pode ver issoprimeiro ~/.bashrcé originado eentão ~/bine ~/.local/binsãoanexado.Como eu mesmo experimentei, isso causa condasoluços.

A solução seria comentar os dois blocos que manipulam PATH no ~/.profile.

Editar (24/09/2019):Parece ainda melhor configurar o TMux de forma que ele não gere um shell de login, mas apenas um shell normal. Veja as respostas para a pergunta vinculada.

Responder4

O seguinte acontece comigo depois de iniciar uma sessão do Tmux (sem que o conda tenha nenhum ambiente ativo).

Quando faço isso pela primeira vez na sessão do Tmux:

conda activate myEnv

eu recebo

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'.

Se em vez disso eu fizer:

source deactivate
conda activate myEnv

Tudo funciona muito bem. which pythonaponta para o caminho correto.

informação relacionada