Каталог статей
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
. Обновления могут исправить некоторые потенциальные проблемы.
Рекомендации
- Я установил MSYS2 и Anaconda3, как мне использовать conda на MSYS2?
- Conda в Windows под управлением MSYS2 и решение проблем Zsh
- Conda в Windows под MSYS2 и проблемы с завершением строки Zsh # 9922
- Conda: UnicodeEncodeError: кодек 'charmap' не может закодировать символ '\u2580' в позиции 644: символы сопоставляются с
- Невозможно активировать/деактивировать среду conda из-за лямбда-символа cmder, который не обрабатывается в кодировщике/декодере conda #7445.
- Невозможно активировать среду Conda в Git Bash