tmux está causando que anaconda use una fuente diferente de python

11

Ok, entonces estoy en mi entorno de anaconda y ejecuté qué python. yo obtengo

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

Ahora, si inicio tmux, luego ejecuto source enable env1, y luego qué python, obtengo

/home/comp/anaconda3/bin/python

a pesar de que tengo mi entorno activado. ¿Cómo puedo hacer que anaconda vea la misma ruta dentro de tmux?

leniX
fuente

Respuestas:

15

La solución parece ser desactivar el entorno conda, luego iniciar tmux, luego reactivar el entorno dentro de tmux.

leniX
fuente
2
Solución extraña pero funciona ...
LYu
Eso es raro de hecho.
ZirconCode
2
Estoy votando porque esta es la solución que funcionó para mí, sin embargo, en realidad es una solución lejos de ser ideal
compre
2

Lo siguiente me sucede después de comenzar una sesión de Tmux (sin que conda tenga ningún entorno activo).

Cuando lo hago por primera vez dentro de la sesión de Tmux:

conda activate myEnv

yo obtengo

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

Si en cambio lo hago:

source deactivate
conda activate myEnv

Todo funciona bien. which pythonseñala el camino correcto.

jose.marcos.rf
fuente
2

Este comportamiento es causado por el abastecimiento de TMux en ~/.profilelugar de ~/.bashrc. Mi ~/.profilees esto:

# 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

Se puede ver que en primer lugar ~/.bashrc se producen y luego ~/bin y ~/.local/binse antepone . Como lo experimenté yo mismo , esto hace condaque se cague.

La solución sería comentar los dos bloques que manipulan PATH ~/.profile.

Editar (24/09/2019): Parece aún mejor configurar TMux de modo que no genere un shell de inicio de sesión, sino solo uno normal. Vea las respuestas para la pregunta vinculada.

Max Görner
fuente
1

Corriendo:

conda activate env1

En vez de:

source activate env1

Cuando estaba dentro, tmux me funcionó.

pedrodcb
fuente
1

Creo que tmux siempre llamará al perfil de su shell, no solo al rc. Entonces, si está usando bash como yo, llamará a / etc / profile, que tendrá una llamada a path_helper.

Para solucionar esto, cambie /etc/profilea:

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

Si está utilizando bash, también cambiar cualquiera export PATH=$PATH:/foode .bashrca

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

luego reinicia el terminal (por ejemplo, Iterm). ¡Todo debería estar bien!

H.Li
fuente
0
nano ~/.bash_profile

Agregue las siguientes líneas:

source deactivate env1
source activate env1

trabajó para mi.

Kensuke NAKAMURA
fuente