Как исправить & ldquo; $ '\ r': команда не найдена & rdquo; ошибки, выполняющие скрипты Bash в WSL?

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

Я выполнил все шаги установки в Windows 10 x64 с помощью шагов в junyanz / pytorch-CycleGAN-and-pix2pix , затем Ubuntu для Windows с рабочим столом GitHub. Как установить и использовать оболочку Linux Bash в Windows 10.

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

Здесь я пытаюсь загрузить или обучить модель в Windows. Используя, например, приглашение Ubuntu Linux, я перемещаюсь вручную в нужное место и набираю следующую команду, подобную приведенной ниже (я также пробовал в режиме 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

Любая идея?

7
задан 27 October 2017 в 23:25

4 ответа

Внутри WSL:

sudo apt-get install dos2unix

Затем

dos2unix [file]

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

man dos2unix

Сохранял мой день, надеюсь, что это поможет.

0
ответ дан 18 July 2018 в 05:02

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

] steeldriver прав , вы вводите команду, чтобы попытаться запустить скрипт в 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 , Однако, если вы загрузили файлы с помощью Git 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.

3
ответ дан 18 July 2018 в 05:02

Внутри WSL:

sudo apt-get install dos2unix

Затем

dos2unix [file]

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

man dos2unix

Сохранял мой день, надеюсь, что это поможет.

0
ответ дан 24 July 2018 в 18:14

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

] steeldriver прав , вы вводите команду, чтобы попытаться запустить скрипт в 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 , Однако, если вы загрузили файлы с помощью Git 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.

3
ответ дан 24 July 2018 в 18:14

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

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