It技術

[__NSCFConstantString initialize]マルチプロセッシング処理のエラー


エラー
objc[18501]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.

原因

Pythonでマルチプロセッシングを行おうとしたら上記のようにエラーが出てしまいました。

どうやらMacのM1チップで起こる不調のようです。

解決方法

下記のコマンドを実行したところエラーが解決されました。

1
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

環境によっては以下で解決できるかもしれません。

1
export DISABLE_SPRING=true

有効だったコマンドは~/.zshrcに追記しましょう。

1
open ~/.zshrc

参考

https://github.com/rails/rails/issues/38560