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

Ruby 2.4.1使用smarter_csv gem遇SyntaxError问题求助

解决Ruby 2.4.1中smarter_csv gem的语法错误问题

问题现象

在Ruby 2.4.1环境下运行CLI脚本,引入smarter_csv gem(尝试过1.7.4、1.7.3、1.7.1等版本)时,触发如下语法错误:

/Users/macbook/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:54:in `require': /Users/macbook/.rvm/gems/ruby-2.4.1/gems/smarter_csv-1.7.4/lib/smarter_csv.rb:549: syntax error, unexpected keyword_rescue, expecting keyword_end (SyntaxError)
      rescue EOFError # short files
            ^
/Users/macbook/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from csv_analysis_script.rb:16:in `<main>'

问题原因

smarter_csv 1.7.x及以上版本引入了Ruby 2.5+才支持的语法特性,Ruby 2.4.1无法正确解析这些语法,导致出现rescue与end不匹配的语法错误。即使降级到1.7.x系列的旧版本,也可能存在同样的语法兼容问题。

解决方案

  • 安装兼容Ruby 2.4.1的smarter_csv版本
    选择1.6.0版本,该版本完全兼容Ruby 2.4.x:

    gem install smarter_csv -v 1.6.0
    

    如果使用Bundler管理依赖,在Gemfile中锁定版本:

    gem 'smarter_csv', '~> 1.6.0'
    

    然后执行:

    bundle install
    
  • 验证修复
    重新运行你的CLI脚本,确认语法错误消失。

  • 长期解决方案
    Ruby 2.4.1已在2020年4月停止官方维护,建议升级到Ruby 2.5或更高版本,这样可以正常使用smarter_csv的最新版本,同时获得更好的安全性和性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:00:28