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

Ruby on Rails 5.2.4使用google-cloud-translate本地运行报错求助

报错原因

这个错误是macOS High Sierra 及以上版本独有的系统级安全限制导致的,生产环境Heroku使用Linux系统不存在该限制,因此代码可以正常运行。
苹果在高版本macOS中为Objective-C运行时增加了fork安全校验:如果父进程已经存在处于运行状态的Objective-C线程,fork产生的子进程再尝试初始化Objective-C类时就会触发该崩溃。
google-cloud-translate gem底层依赖的gRPC库在Mac环境下会调用系统层面的Objective-C网络接口,而Rails控制台默认会通过fork子进程的方式执行部分代码,二者叠加就触发了该系统校验报错。

解决方案
  • 临时生效(仅当前终端会话有效):
    启动Rails控制台前,先在当前终端执行命令:
    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
    之后再启动Rails控制台执行代码即可正常运行。
  • 永久生效(当前用户所有终端会话有效):
    将上述环境变量写入终端配置文件:
    • 如果你使用zsh:写入~/.zshrc文件
    • 如果你使用bash:写入~/.bash_profile或~/.bashrc文件
      写入内容为:
    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
    
    保存后执行source 对应配置文件路径即可立即生效,后续不需要再手动设置。
  • 项目级生效:
    如果你使用dotenv等工具管理项目环境变量,可以直接在项目的.env文件中添加上述环境变量配置,启动Rails项目时会自动加载,不会影响其他项目的运行。

注:该环境变量仅对macOS系统生效,提交到Linux生产环境不会产生任何副作用,可以放心配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:36:04