运行rails new命令提示找不到ruby.exe(Errno::ENOENT)如何修复?
报错原因
该错误由Windows系统下Ruby安装路径包含空格触发,你的Ruby安装在D:/Program Files/Ruby30-x64路径下,Program Files中间的空格导致Rails的加载脚本解析路径时出错,无法找到对应的ruby.exe可执行文件。
修复方案
你可以按优先级选择以下任意一种方案解决:
方案1:修改Ruby安装路径(最稳定,推荐)
- 完全卸载当前安装在
D:/Program Files/Ruby30-x64下的Ruby环境 - 重新安装Ruby到无空格、无特殊字符的纯英文路径下,例如
D:/Ruby30-x64 - 更新系统环境变量,将新的Ruby安装目录下的bin文件夹添加到系统Path中
- 重新执行
gem install rails和gem install sqlite3命令,之后再运行rails new <app_name>测试即可正常创建项目
方案2:修改Rails加载脚本(无需重装,适合临时使用)
- 打开报错提示的文件:
D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/gems/railties-6.1.4.1/lib/rails/app_loader.rb - 找到第53行的exec调用代码,将传入的ruby路径参数用英文双引号包裹,保证系统能正确识别带空格的路径
- 保存修改后重新执行
rails new <app_name>命令即可
注意:该修改仅对当前版本的Rails生效,后续升级Rails版本后需要重新修改对应文件
方案3:使用Windows短路径名临时适配
- 打开命令提示符,执行
dir /x D:\查看Program Files目录对应的8.3格式短路径,默认一般为PROGRA~1 - 临时把系统Path中Ruby的bin路径替换为短路径格式,即
D:/PROGRA~1/Ruby30-x64/bin - 重启命令行工具后再执行Rails相关命令即可生效
内容的提问来源于stack exchange,提问作者Chhor Tithmesa
相关产品推荐
相关产品推荐

