Appel de Conda dans l'environnement UCRT64/MSYS2 ZSH

1. Énoncé du problème

  • question 1(eval):11: parse error near `^M'

La raison de ce problème est que \r, \n, \r\nles symboles égaux ne peuvent pas être MSYS2reconnus avec précision.
Ce problème se produit après eval "$('/d/miniconda3/Scripts/conda.exe' 'shell.zsh' 'hook')"la configuration

Insérer la description de l'image ici

  • La commande Question 2 condane peut pas être utilisée :UnicodeEncodeError: 'gbk' codec can't encode character '\u279c'

Ce problème se produit après avoir modifié la configuration de la question 1 et condaajouté avec succès la commande à UCRT64l'environnement.

# >>> 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 <<<

Insérer la description de l'image ici

2. Analyse du problème et solution

  • Cause du problème À en juger
    par le message d'erreur, condala raison pour laquelle la commande ne peut pas être utilisée réside dans l'encodage. En d'autres termes, MSYS2les variables d'environnement encodées sont gbk. Pour résoudre ce problème, il vous suffit de condaconfigurer correctement les variables d'environnement encodées lors de l'utilisation la commande. C’est tout.
  • Pour résoudre le problème ,
    utilisez zshle mécanisme d'alias et configurez l'encodage condalors de l'appel de la commande .python
  • zshConfiguration modifiée
# >>> 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"
  • Effet
    Les résultats montrent que condala commande est utilisée normalement et minicondaest entièrement activée.

Insérer la description de l'image ici

3. Autres

  • En fait, lors WndowsTerminalde la configuration dans MSYS2, vous pouvez charger directement les variables d'environnement existantes dans le système, ce problème peut donc ne pas exister.
  • Dans le but d'isoler les deux environnements, l'auteur charge diverses variables d'environnement en configurant des variables d'environnement, cette idée n'a donc pas été vérifiée.
  • Avant d'utiliser cette méthode, faites de votre mieux pour utiliser une nouvelle version qui vous convient conda. L'apparition de ce problème peut également être liée à condaelle-même bug. Les mises à jour peuvent résoudre certains problèmes potentiels.

les références

  1. J'ai installé MSYS2 et Anaconda3, alors comment puis-je utiliser conda sur MSYS2 ?
  2. Conda sous Windows sous MSYS2 et résolution de problèmes Zsh
  3. Conda sous Windows sous MSYS2 et problèmes de fin de ligne Zsh #9922
  4. Conda : UnicodeEncodeError : le codec 'charmap' ne peut pas encoder le caractère '\u2580' en position 644 : le caractère est mappé à
  5. Impossible d'activer/désactiver l'environnement conda en raison du caractère lambda cmder non géré dans l'encodeur/décodeur conda #7445
  6. Impossible d'activer l'environnement Conda dans Git Bash

Je suppose que tu aimes

Origine blog.csdn.net/Y1575071736/article/details/130337319
conseillé
Classement