tmux заставляет anaconda использовать другой источник python

Думаю, вы ищете namei , который является частью пакета util-linux, доступного на всех невстроенных Linux система.

См. эту ветку относительно эквивалента для macOS. Исходный код должен быть в основном переносимым, если он вам нужен в другом варианте Unix.

9
07.04.2019, 22:08
8 ответов
nano ~/.bash_profile

Добавьте следующие строки:

source deactivate env1
source activate env1

сработало для меня.

0
27.01.2020, 20:05

Работает:

conda activate env1

Вместо:

source activate env1

Когда внутри у меня работал tmux.

3
27.01.2020, 20:05

Следующее происходит со мной после запуска сеанса 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указывает на правильный путь.

2
27.01.2020, 20:05

Такое поведение вызвано использованием 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.

Изменить (24/09/2019):Кажется, еще лучше настроить TMux так, чтобы он не порождал оболочку входа, а только обычную. См. ответы на связанный вопрос.

3
27.01.2020, 20:05

Я обнаружил, что tmux всегда вызывает профиль вашей оболочки, а не только rc. Поэтому, если вы используете bash, как я, он вызовет /etc/profile, который будет иметь вызов помощника по пути _.

Чтобы исправить это, измените /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 ). Все должно быть хорошо!

1
27.01.2020, 20:05

У меня была та же проблема, но мне действительно не нравилось ни одно из решений, поскольку они включали деактивацию и активацию Conda каждый раз, когда я загружаюсь в tmux. Поэтому вместо этого я добавил то, что ниже, к моему.tmux.conf:

ВАЖНОЕ РЕДАКТИРОВАНИЕ :Этот код работает для меня, так как в настоящее время я запускаю оболочку zsh, и именно здесь хранятся мои настройки. Ваша стандартная оболочка может отличаться, чтобы найти местоположение вашей оболочки, используйте команду echo "$SHELL"и замените /bin/zshв моем ответе на свой собственный путь к оболочке.

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

Когда все будет готово, просто загрузите файл .tmux.conf, и изменения должны быть активированы. Это должно позволить tmuxзагрузить любые настройки, которые у вас есть в вашем .bash_profile, включая Conda.

2
13.05.2020, 23:24

При запуске conda activateраньше мне сообщали «CommandNotFoundError :Ваша оболочка не была должным образом настроена для использования «активации conda». Чтобы инициализировать вашу оболочку, запустите...'

Исправлением для меня стало упрощение ответа @jose.marcos.rf (Мне не хватает прав на комментирование ).

Все, что было нужно, это получить файл conda.shиз моего файла .bash_profile. В моем профиле.bash _у меня есть следующее:

if [[ ! -z $TMUX ]]; then
    # Enable `conda activate` and such within Tmux
   . "/usr/local/anaconda3/etc/profile.d/conda.sh"
fi

Затем открытие нового сеанса Tmux и запуск conda activateработает должным образом.

0
24.06.2020, 12:43

Вам нужно отключить tmux из порождающей оболочки входа в систему, как описано в tmux заставляет анаконду использовать другой источник Python

2
14.10.2021, 11:02

Теги

Похожие вопросы