記事ディレクトリ
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
、システム内の既存の環境変数を直接読み込むことができるため、この問題は存在しない可能性があります。 - 2つの環境を分離する目的で、作者は環境変数を設定してさまざまな環境変数をロードしているため、このアイデアは検証されていません。
- この方法を使用する前に、自分にとって許容できる新しいバージョンを使用するよう最善を尽くしてください
conda
。この問題の発生は、conda
それ自体に関連している可能性もありますbug
。更新すると、潜在的な問題が解決される可能性があります。
参考文献
- MSYS2 と Anaconda3 をインストールしましたが、MSYS2 で conda を使用するにはどうすればよいですか?
- MSYS2 および Zsh での Windows の Conda の問題解決
- MSYS2 および Zsh での Windows の Conda 行末の問題 #9922
- Conda: UnicodeEncodeError: 'charmap' コーデックは位置 644 の文字 '\u2580' をエンコードできません: 文字は次のようにマップされます
- cmder ラムダ文字が conda エンコーダー/デコーダーで処理されないため、conda 環境をアクティブ化/非アクティブ化できません #7445
- Git Bash で Conda 環境をアクティブ化できない