我在 WSL 中尝试使用时遇到错误junyanz/pytorch-CycleGAN-and-pix2pix。
我按照以下步骤在 Windows 10 x64 上成功完成了所有安装步骤Windows 10 上的 PyTORCH:带有屏幕截图的说明,然后是带有 GitHub 桌面的 Ubuntu for Windows如何在 Windows 10 上安装和使用 Linux Bash Shell。
但我却无法采取最新的措施。
这是我在 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
任何想法?
答案1
在 WSL 内部:
sudo apt-get install dos2unix
然后,
dos2unix [file]
完整文档:
man dos2unix
拯救了我的一天,希望它能有所帮助。
答案2
如果你使用的是 Windows,
- 在 NotePad++ 上打开你的 shell 文件
- 单击顶部栏菜单上的“编辑”,然后选择“EOL 转换 --> Unix(LF)”
- 现在将此文件复制到您的 Linux 系统中,它应该会正常运行而不会出现这些错误。
答案3
steeldriver 是正确的问题是你有 Windows 的文件行尾并且bash
无法运行它们。$'\r'
是回车符 (CR) 的表示,它是传统 DOS 和 Windows 行尾 (CR LF) 的一部分,但在传统的 Unix 样式行尾 (LF) 中不存在。
正如你所说,您正在输入命令以尝试运行脚本bash
,但请注意,脚本实际上存储在外部你的 Ubuntu(WSL)系统,在你的视窗下载目录:
/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 系统。
答案4
我遇到了这个问题,解决方案是配置 git 以 Linux 行结束的方式检出特定文件。
您可以在 git 根目录下添加一个文件,.gitattributes
该文件用于配置 git 的特定属性(查看完整文档)。
添加线条
# Convert to LF line endings on checkout.
*.sh text eol=lf
配置 git.sh
即使在 Windows 机器上也能检出以 LF 行结尾的文件。