You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10下Ruby on Rails遇Errno::ENOENT错误,无法执行命令求助

解决Windows 10下Ruby 3.1.2 + Rails 7.0.3.1命令执行失败(Errno::ENOENT)的问题

快速排查路径问题

  • 确保项目路径无中文、空格或特殊字符,比如用C:\rails\my_app替代C:\我的Rails项目\demo app,Windows下特殊路径会导致gem依赖加载时的路径解析错误。
  • 用where ruby和where rails命令确认Ruby/Rails的安装路径,确保路径中没有特殊字符,且该路径已加入系统PATH环境变量。

重建依赖与缓存

  • 打开项目目录,执行bundle install重新安装所有gem依赖——部分gem在Windows下可能存在安装不完整的情况,重新安装能修复依赖链问题。
  • 若rails命令无法执行,手动删除项目根目录下的tmp文件夹,清理Rails临时缓存文件。
  • 执行gem cleanup清理过期gem缓存,再重新安装指定版本的Rails:gem install rails -v 7.0.3.1。

用WSL2对齐Linux开发环境(推荐)

因为要和Linux同事协作,直接使用WSL2可以彻底规避Windows与Linux的环境差异:

  • 启用WSL2并安装Ubuntu发行版,在WSL环境内用rbenv或rvm安装Ruby 3.1.2,再安装Rails 7.0.3.1。
  • 将项目放在WSL的原生文件系统中(比如/home/your_username/projects/),不要使用Windows挂载的/mnt/c目录,避免路径解析和性能问题。
  • 在WSL终端内执行所有Rails命令,环境与同事完全一致,从根源解决跨系统兼容性问题。

权限与环境变量检查

  • 用管理员权限打开命令提示符或PowerShell执行Rails命令,避免因文件访问权限不足导致的Errno::ENOENT错误。
  • 检查系统PATH环境变量,确保Ruby的bin目录排在最前面,避免其他版本的Ruby或工具干扰。

替换Windows不兼容的gem

部分gem对Windows支持较差,可针对性替换:

  • 若堆栈信息指向sqlite3,修改Gemfile为:
    gem 'sqlite3', git: 'https://github.com/larskanis/sqlite3-ruby', branch: 'add-win32-vfs'
    
    再执行bundle install安装Windows兼容版本。
  • 根据堆栈中报错的gem名称,查找其Windows兼容版本或替代方案,替换后重新安装依赖。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:03:20