web-dev-qa-db-fra.com

Comment corriger les erreurs "$ '\ r': command not found" lors de l'exécution de scripts Bash dans WSL?

J'obtiens une erreur dans WSL en essayant d'utiliser junyanz/pytorch-CycleGAN-and-pix2pix .

J'ai suivi toutes les étapes d'installation avec succès sur Windows 10 x64 en suivant les étapes décrites dans PyTORCH sous Windows 10: instructions avec des captures d'écran , puis Ubuntu pour Windows avec le bureau GitHub Comment installer et utiliser Linux Bash Shell sous Windows 1 .

Mais je suis bloqué aux dernières étapes.

C'est là que j'essaie de télécharger ou de former le modèle sous Windows. En utilisant par exemple l'invite Linux Ubuntu, je navigue manuellement vers le lieu approprié et saisis une commande suivante, similaire à celle ci-dessous (j'ai également essayé en mode su)

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

Je reçois une erreur immédiate, toujours la même, semblable à celle-ci:

root@Azure:/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix# bash pretrained_models/download_pix2pix_model.sh facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 2: $'\r': command not found
Note: available models are edges2shoes, sat2map, and facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 4: $'\r': command not found
]pecified [facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 6: $'\r': command not found
mkdir: cannot create directory ‘./checkpoints/facades_label2photo\r_pretrained\r’: No such file or directory
pretrained_models/download_pix2pix_model.sh: line 10: $'\r': command not found
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

: No such file or directoryhphoto
pretrained_models/download_pix2pix_model.sh: line 12: $'\r': command not found
pretrained_models/download_pix2pix_model.sh: line 13: $'\r': command not found

Une idée?

13
Vincent Thomas

À l'intérieur du WSL:

Sudo apt-get install dos2unix

Ensuite,

dos2unix [file]

Documentation complète:

man dos2unix

Sauvé ma journée, espérons que cela aide.

11
Chaim Eliyah

steeldriver est correct le problème est que vous avez des fichiers avec Windows fins de lignes et bash ne peuvent pas les exécuter. $'\r' est une représentation du caractère de retour chariot (CR) qui fait partie des fins de ligne DOS et Windows traditionnelles (CR LF), mais qui est absent des fins de ligne de style Unix traditionnelles.

Comme vous le dites , vous tapez la commande pour tenter d’exécuter le script dans bash, mais notez que le script est réellement stocké en dehors de votre Ubuntu ( WSL) dans votre répertoire de téléchargement Windows :

/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix

Les chemins WSL commençant par /mnt/c, où c peut être toute lettre de lecteur Windows, sont des chemins qui accèdent aux fichiers et aux répertoires en dehors du système Ubuntu. En tant que chemin Windows, c'est:

C:\Users\vincent\Downloads\vision\pytorch-CycleGAN-and-pix2pix

Le fait qu'un fichier soit stocké dans votre système Windows en dehors de la zone d'installation d'Ubuntu ne garantit pas qu'il utilise le style Windows au lieu des fins de ligne de style Unix. Toutefois, si vous avez téléchargé les fichiers avec Git dans Windows , sa configuration par défaut consiste à vous donner des fins de ligne de style Windows.

Le moyen le plus simple de résoudre le problème consiste à télécharger les fichiers dont vous avez besoin dans le système Ubuntu à partir de votre invite bash. Je vous recommande de mettre à jour complètement le système Ubuntu, puis d'installer git dans Ubuntu, ainsi que build-essential, qui fournit les outils utiles dont vous avez besoin pour compiler la plupart des logiciels à partir du code source. Pour les programmes Python, vous n'avez peut-être pas besoin de build-essential; vous pouvez l'omettre si vous le souhaitez, mais je suppose que vous en aurez besoin à un moment donné.

Sudo apt update && Sudo apt upgrade && Sudo apt install git build-essential

Utilisez ensuite la commande cd pour accéder à un répertoire dans lequel vous souhaitez télécharger le logiciel. Cela devrait être un répertoire dans votre système Ubuntu. Par exemple, cela pourrait être votre répertoire personnel Ubuntu ou quelque part à l'intérieur. Une fois là-bas, clonez le référentiel depuis GitHub. Je l'ai fait dans le répertoire src que j'ai créé dans mon répertoire personnel.

cd ~/src
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git

Bien sûr, vous devrez probablement installer les dépendances en premier. Pour ce faire, suffit de suivre toutes les instructions officielles . Effectuez toutes ces étapes dans le système Ubuntu.

6
Eliah Kagan