Вызов Conda в среде UCRT64/MSYS2 ZSH

1. Постановка задачи

  • Вопрос 1(eval):11: parse error near `^M'

Причина этой проблемы в том, что \r, \n, \r\nсимволы равенства не могут быть MSYS2точно распознаны.Эта
проблема возникает после eval "$('/d/miniconda3/Scripts/conda.exe' 'shell.zsh' 'hook')"настройки

Вставьте сюда описание изображения

  • Команду вопроса 2 condaнельзя использовать:UnicodeEncodeError: 'gbk' codec can't encode character '\u279c'

Эта проблема возникает после изменения конфигурации, указанной в вопросе 1, и успешного condaдобавления команды в UCRT64среду.

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
eval "$('/d/miniconda3/Scripts/conda.exe' 'shell.zsh' 'hook' | sed -e 's/"$CONDA_EXE" $_CE_M $_CE_CONDA "$@"/"$CONDA_EXE" $_CE_M $_CE_CONDA "$@" | tr -d \x27\\r\x27/g')"
# <<< conda initialize <<<

Вставьте сюда описание изображения

2. Анализ проблемы и ее решение

  • Причина проблемы Судя
    по сообщению об ошибке, condaпричина, по которой команда не может быть использована, кроется в кодировке.Другими словами, MSYS2закодированные переменные среды gbk.Для решения этой проблемы необходимо всего лишь condaправильно настроить закодированные переменные среды при использовании команда.
  • Чтобы решить проблему ,
    используйте zshмеханизм псевдонимов и настройте кодировку condaпри вызове команды .python
  • Измененная zshконфигурация
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
eval "$('/d/miniconda3/Scripts/conda.exe' 'shell.zsh' 'hook' | sed -e 's/"$CONDA_EXE" $_CE_M $_CE_CONDA "$@"/"$CONDA_EXE" $_CE_M $_CE_CONDA "$@" | tr -d \x27\\r\x27/g')"
# <<< conda initialize <<<
alias conda="PYTHONIOENCODING=utf8 conda"
  • Эффект
    Результаты показывают, что condaкоманда используется нормально и minicondaполностью активирована.

Вставьте сюда описание изображения

3. Другие

  • Фактически, при WndowsTerminalнастройке в MSYS2, вы можете напрямую загружать существующие переменные среды в системе, поэтому этой проблемы может не быть.
  • С целью изоляции двух сред автор загружает различные переменные среды, настраивая переменные среды, поэтому эта идея не была проверена.
  • Прежде чем использовать этот метод, постарайтесь использовать новую версию, приемлемую для вас conda. Возникновение этой проблемы также может быть связано само с condaсобой bug. Обновления могут исправить некоторые потенциальные проблемы.

Рекомендации

  1. Я установил MSYS2 и Anaconda3, как мне использовать conda на MSYS2?
  2. Conda в Windows под управлением MSYS2 и решение проблем Zsh
  3. Conda в Windows под MSYS2 и проблемы с завершением строки Zsh # 9922
  4. Conda: UnicodeEncodeError: кодек 'charmap' не может закодировать символ '\u2580' в позиции 644: символы сопоставляются с
  5. Невозможно активировать/деактивировать среду conda из-за лямбда-символа cmder, который не обрабатывается в кодировщике/декодере conda #7445.
  6. Невозможно активировать среду Conda в Git Bash

рекомендация

отblog.csdn.net/Y1575071736/article/details/130337319
рекомендация