JupyterでRを使おうとしたら詰まった話

すでに分かりやすい説明がいくつもありますが、自分の環境では詰まったのでまとめてみる。


環境
・OS:MacOS Sierra(10.12.6)
・R:3.4.2
・Jupyter:4.3.0
 ※pyenvでanaconda3-5.0.1をインストールして使用


参考
qiita.com


ターミナルでRを立ち上げ以下のコマンドを入力すれば良い、はずなのですが自分の場合は1行につき1回詰まりました。。。

> install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
> devtools::install_github('IRkernel/IRkernel')
> IRkernel::installspec()


まず1行目を入力すると

 警告メッセージ: 
 doTryCatch(return(expr), name, parentenv, handler): 
   共有ライブラリ '/Library/Frameworks/R.framework/Resources/modules//R_X11.so' を読み込めません: 
  dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Library not loaded: /opt/X11/lib/libSM.6.dylib
  Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
  Reason: image not found 


どうやらX11がないと怒られているようです。
調べてみると以前のmacOSではX11が標準で入っていたようですが、現在は別途インストールする必要があるようです。
macos - Can't load X11 in R after OS X Yosemite upgrade - Stack Overflow
Mac 用の X11 について - Apple サポート


アップル公式サイトからダウンロードサイトへ移動してインストールします。


f:id:aiuchi0703:20171225001626p:plain


インストールすると「/opt/X11/lib/libSM.6.dylib」が生成され無事にパッケージのインストールはできました。
次に2行目のコマンドですが

> devtools::install_github('IRkernel/IRkernel')
Skipping install of 'IRkernel' from a github remote, the SHA1 (dfa7f4ef) has not changed since last install.
  Use `force = TRUE` to force installation


`force = TRUE`と言われたのでとりあえずその通りに実行してみます。

> devtools::install_github('IRkernel/IRkernel', force = T)
Downloading GitHub repo IRkernel/IRkernel@master
(中略)
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (IRkernel)
 警告メッセージ: 
GitHub repo contains submodules, may not function as expected!


警告メッセージは出たものの、一応インストールはできたようなので先に進んでみます。

> IRkernel::installspec()
 IRkernel::installspec() でエラー: 
  jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127.

エラー文を検索してみてもよく分からない。。。


で、2時間くらい悩んだのですが、これは完全に私の不注意でした。
最初に書いたようにpyenvのanacondaでjupyterをインストールしていたのですが、実行環境がanacondaじゃなかった(笑)

anaconda環境でRを立ち上げて上記コマンドを実行し、ターミナルに戻って

$ jupyter notebook


これで新規ファイル作成時にRを選択できるようになりました。


f:id:aiuchi0703:20171225005925p:plain:w150