WSL'de Bash komut dosyalarını çalıştıran “$ '\ r': komut bulunamadı” hatalarını nasıl düzeltirim?


23

WSL'de junyanz / pytorch-CycleGAN-and-pix2pix'i kullanmaya çalışırken hata alıyorum .

Windows 10'daki PyTORCH adımlarını kullanarak Windows 10 x64'teki tüm yükleme adımlarını başarıyla takip ettim : Ekran görüntüleri ile ilgili bir talimat , ardından GitHub masaüstüne sahip Windows için Ubuntu ve Windows 10'a Linux Bash Kabuğu Nasıl Kurulur ve Kullanılır .

Ama en son adımlarda engellendim.

Modeli Windows'ta indirmeye veya eğitmeye çalıştığım yer. Örneğin, Ubuntu Linux istemini kullanarak, uygun yere manuel olarak gidiyorum ve aşağıdaki gibi bir aşağıdaki komutu yazıyorum (ayrıca su modunda da denedim).

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

Bunlara benzer, hemen aynı, hemen bir hata alıyorum:

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

Herhangi bir fikir?


4
Ben ne yaptığını hiçbir fikrim yok, ama $'\r': command not foundkuvvetle sorun, DOS tarzı CRLF satır sonları ile dosyalarınızı kurtardı Windows metin editörü kullanmış olduğu öne sürüldü - örnek için bkz Unix Hattı Endings vs DOS
steeldriver

Ancak sadece komutu doğrudan Windows Ubuntu komut istemine yazıyorum. Hiç bir metin editörü tarafından
Vincent Thomas

1
@VincentThomas Bu bir metin dosyasıdır:pretrained_models/download_pix2pix_model.sh
wjandrea

Cevabı burada deneyin: Windows satır sonunu Unix sürümüne nasıl değiştirebilirim ? İşe yararsa, bize bildirin; sorunuzun bir kopyası olarak kapanacağız.
wjandrea,

@wjandrea Bunun, Windows satır sonunu Unix sürümüne nasıl değiştireceğimin bir kopyası olduğunu sanmıyorum . Burada makul çözümdür çalıştırmak için git cloneWSL sistemi içinde her dosyayı dönüştürmek için çalışırken ekstra çaba üstlenmek değil,. Eğer amaç Ubuntu'da yazılım kurmaksa, önce kendi dosya sisteminin dışına indirmek için hiçbir sebep yoktur.
Eliah Kagan

Yanıtlar:


23

WSL İçinde:

sudo apt-get install dos2unix

Sonra,

dos2unix [file]

Tam belgeler:

man dos2unix

Günümü kurtardım, yardımcı olacağını umuyorum.


Bu çalışıyor. VSCode kullanıyordum ve bazı rsync ve ssh komutlarını çalıştıran ve bu soruna rastlayan bir kabuk betiği vardı. Chaim’in söylediği gibi WS2’ye dos2unix kullandım ve bir kere wsl dos2unix deploy.shPowershell’den çalıştım ve şimdi her yazdığımda wsl ./deploy.shher şey mükemmel çalışıyor! Çok teşekkürler.
Dan Zuzevich

7

steeldriver sorun şu ki, Windows satır sonlarına sahip dosyalarınız var ve bashbunları çalıştıramazsınız. $'\r'geleneksel DOS ve Windows satır sonlarının (CR LF) bir parçası olan, ancak geleneksel Unix stili satır sonlarında (LF) bulunmayan satır başı karakterinin (CR) temsilidir.

Söylediğiniz gibi , betiği çalıştırmayı denemek için komutu yazıyorsunuz bash, ancak komut dosyasının Windows indirme dizininizde Ubuntu (WSL) sisteminizin dışında depolandığına dikkat edin :

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

İle başlayan WSL yolları /mnt/cnerede, cherhangi bir Windows sürücü harfi olabilir ki yollarıdır erişim dosya ve dizinleri dışında Ubuntu sisteminde. Bir Windows yolu olarak:

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

Windows sisteminizde bir dosyanın Ubuntu'nun kurulu olduğu alanın dışında saklanması , Unix tarzı satır sonları yerine Windows tarzı kullanılmasını garanti etmez. Bununla birlikte, Git'te Windows'da bulunan dosyaları indirdiyseniz, varsayılan yapılandırması size Windows tarzı satır sonları vermektir.

Sorunu çözmenin en kolay yolu, gerçekten Ubuntu sistemi içinde ihtiyacınız olan dosyaları bashisteminizden indirmektir . Ubuntu sistemini tam olarak güncellemenizi, daha sonra çoğu yazılımı kaynak koddan derlemeniz için gerekli araçları sağlayan git Ubuntu'ya kurmanızı öneririm build-essential. Python programları için ihtiyacınız olmayabilir build-essential; İsterseniz ihmal edebilirsiniz, ancak bir noktada buna ihtiyaç duyacağınızdan şüpheleniyorum.

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

Ardından cdyazılımı indirmek istediğiniz dizine gitmek için komutu kullanın. Bu, Ubuntu sisteminizde bir dizin olmalıdır. Örneğin, Ubuntu giriş dizininiz veya içinde bir yerde olabilir. Bir kez orada, depoyu GitHub'dan klonla. İçeri yaptım srcbenim ev dizini altındaki yapılan bu dizine.

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

Elbette, öncelikle bağımlılıkları kurmanız gerekecektir. Bunu yapmak için, sadece tüm resmi talimatları izleyin . Tüm bu adımları mı içinde Ubuntu sisteminde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.