Как делают я фиксирую “$ '\r': команда, не найденная” ошибки при запущении скриптов Bash в WSL?

Я получаю ошибку в WSL при попытке использовать junyanz/pytorch-CycleGAN-and-pix2pix.

Я выполнил все шаги установки успешно в Windows 10 x64 с помощью шагов в PyTORCH в Windows 10: учебное со снимками экрана, затем Ubuntu для Windows с рабочим столом GitHub, Как Установить и Использовать Bash Linux Shell в Windows 10.

Но я заблокирован на последних шагах.

Это где я пытающийся загрузить или обучить модель в Windows. Используя, например, подсказку Linux Ubuntu, я перешел вручную к соответствующему месту и ввожу следующую команду как та ниже (я также попробовал в su режиме),

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

Я получаю непосредственную ошибку, всегда то же, подобное им:

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

Какая-либо идея?

72
задан 27 October 2017 в 13:25

2 ответа

steeldriver корректен, которым проблема состоит в том, что у Вас есть файлы с окончаниями строки Windows и bash не может выполнить их. $'\r' представление символа возврата каретки (CR), который является частью традиционного DOS и окончаний строки Windows (CR LF), но который отсутствует в традиционных окончаниях строки стиля Unix (LF).

Как Вы говорите, Вы вводите команду, чтобы попытаться запустить скрипт в bash, но заметьте, что сценарий на самом деле хранится вне Вашей Ubuntu (WSL) система в Вашем каталоге загрузки Windows:

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

Пути WSL, которые запускаются с /mnt/c, где c может быть любая буква диска Windows, пути что файлы доступа и каталоги вне системы Ubuntu. Как путь Windows, который является:

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

То, что файл хранится в Вашей системе Windows вне области, где Ubuntu установлена, не гарантирует, что это использует стиль Windows вместо окончаний строки стиля Unix. Однако при загрузке файлов Мерзавцем в Windows его конфигурация по умолчанию должна дать Вам окончания строки стиля Windows.

Самый легкий способ решить проблему состоит в том, чтобы действительно просто загрузить файлы, в которых Вы нуждаетесь в системе Ubuntu от Вашего bash подсказка. Я рекомендую, чтобы Вы полностью обновили систему Ubuntu, затем установили git в Ubuntu, а также build-essential который обеспечивает полезные инструменты, что необходимо скомпилировать большую часть программного обеспечения от исходного кода. Поскольку Python программирует, Вам, возможно, не понадобится build-essential; можно опустить его, если Вам нравится, но я подозреваю, что Вы закончите тем, что нуждались в нем в какой-то момент.

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

Затем используйте cd управляйте для движения в каталог, где требуется загрузить программное обеспечение. Это должно быть каталогом в Вашей системе Ubuntu. Например, это мог быть Ваш корневой каталог Ubuntu или где-нибудь внутри там. Однажды там, клон репозиторий от GitHub. Я сделал это в src каталог, который я сделал в своем корневом каталоге.

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

Конечно, необходимо будет, скорее всего, установить зависимости сначала. Чтобы сделать это, просто следуйте всем официальным инструкциям. Сделайте все те шаги в системе Ubuntu.

7
ответ дан 23 November 2019 в 01:28

В WSL:

sudo apt-get install dos2unix

Затем

dos2unix [file]

Полная документация:

man dos2unix

Сохраненный мой день, надейтесь, что он помогает.

22
ответ дан 23 November 2019 в 01:28

Другие вопросы по тегам:

Похожие вопросы: