Como faço para corrigir erros “$ '\ r': comando não encontrado” executando scripts Bash no WSL?

7

Estou recebendo um erro na WSL ao tentar usar junyanz / pytorch-CycleGAN e -pix2pix .

Eu segui todas as etapas de instalação com êxito no Windows 10 x64 usando as etapas em PyTORCH no Windows 10: instruções com capturas de tela , então o Ubuntu para Windows com o desktop GitHub Como instalar e usar o shell de bash do Linux no Windows 10 .

Mas estou bloqueado nos últimos passos.

É onde eu tento baixar ou treinar o modelo no Windows. Usando, por exemplo, o prompt do Ubuntu Linux, eu navego manualmente para o local apropriado e digite o seguinte comando como o abaixo (eu também tentei no modo su)

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

Eu recebo um erro imediato, sempre o mesmo, semelhante a estes:

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

Alguma ideia?

    
por Vincent Thomas 19.10.2017 / 23:00

2 respostas

3

steeldriver está correto que o problema é que você tem arquivos com terminações do Windows e bash não pode ser executado eles. $'\r' é uma representação do caractere de retorno de carro (CR) que faz parte dos finais de linha tradicionais do DOS e do Windows (CR LF), mas que está ausente nos finais de linha tradicionais do estilo Unix (LF).

Como você disse , você está digitando o comando para tentar executar o script em bash , mas observe que o script está realmente armazenado fora do seu Ubuntu (WSL), no seu diretório de download do Windows :

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

Os caminhos do WSL que começam com /mnt/c , onde c pode ser qualquer letra da unidade do Windows, são caminhos que acessam arquivos e diretórios fora do sistema Ubuntu. Como um caminho do Windows, isto é:

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

Que um arquivo está armazenado em seu sistema Windows fora , a área onde o Ubuntu está instalado não garante que ele use estilo Windows em vez de terminações de linha estilo Unix. No entanto, se você baixou os arquivos com o Git no Windows , sua configuração padrão é dar a você finais de linha no estilo do Windows.

A maneira mais fácil de resolver o problema é apenas baixar os arquivos que você precisa dentro do sistema Ubuntu a partir do prompt bash . Eu recomendo que você atualize completamente o sistema Ubuntu, então instale git no Ubuntu, bem como build-essential , que fornece ferramentas úteis que você precisa para compilar a maioria dos softwares a partir do código-fonte. Para programas em Python, talvez você não precise de build-essential ; você pode omiti-lo se quiser, mas eu suspeito que você vai precisar dele em algum momento.

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

Em seguida, use o comando cd para ir para um diretório no qual você deseja fazer o download do software. Este deve ser um diretório dentro do seu sistema Ubuntu. Por exemplo, pode ser o seu diretório home do Ubuntu ou algum lugar lá dentro. Uma vez lá, copie o repositório do GitHub. Eu fiz isso dentro do diretório src que eu fiz dentro do meu diretório home.

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

É claro que você provavelmente precisará instalar as dependências primeiro. Para fazer isso, siga todas as instruções oficiais . Faça todos os passos dentro do sistema Ubuntu.

    
por Eliah Kagan 27.10.2017 / 20:11
0

Dentro da WSL:

sudo apt-get install dos2unix

Então,

dos2unix [file]

Documentação completa:

man dos2unix

Salvou meu dia, espero que ajude.

    
por Chaim Eliyah 14.06.2018 / 01:26