tmux está provocando que anaconda use una fuente de Python diferente

tmux está provocando que anaconda use una fuente de Python diferente

Ok, estoy en mi entorno anaconda y ejecuté which python. yo obtengo

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

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

/home/comp/anaconda3/bin/python

aunque sí tengo mi entorno activado. ¿Cómo puedo hacer que anaconda vea el mismo camino dentro de tmux?

Respuesta1

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

Respuesta2

Tuve el mismo problema, pero realmente no me gustó ninguna de las soluciones, ya que implicaban desactivar y activar Conda cada vez que cargo tmux. Entonces, en lugar de eso, agregué lo que se muestra a continuación a mi .tmux.conf:

EDICIÓN IMPORTANTE: este código funciona para mí, ya que actualmente estoy ejecutando un shell zsh y aquí es donde se almacena mi configuración. Su shell estándar puede ser diferente; para encontrar la ubicación de su shell use el comando echo "$SHELL"y reemplace /bin/zshen mi respuesta con su propia ruta de shell.

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

Una vez hecho esto, simplemente recurra a su .tmux.confarchivo y los cambios deberían activarse. Esto debería permitir tmuxcargar cualquier configuración que tenga en su .bash_profileConda incluida.

Respuesta3

Este comportamiento se debe al abastecimiento de TMux ~/.profileen lugar de ~/.bashrc. Mi ~/.profilees 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

Puedes ver esoprimero ~/.bashrces de origen yentonces ~/biny ~/.local/binsonantepuesto.Como lo experimenté yo mismo, esto provoca condaun problema.

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

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

Respuesta4

Me pasa lo siguiente después de iniciar una sesión de Tmux (sin que conda tenga ningún env 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 hago:

source deactivate
conda activate myEnv

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

información relacionada