#概要
JupyterLabでRubyの実行環境を構築した際に、すんなりいかなかったので解決方法を残そうと思います。
ネットで調べた方法で構築した後に、実際にJupyterLabを起動すると以下のようなメッセージが表示されました。
JupyterLab上でRubyを選択できますが、Rubyのコードを実行しようとすると実行できない状態でした。
どうもlibzmq.dllというdllが読み込めていないようでした。
W, [2021-04-29T21:21:26.640618 #12140] WARN -- : Could not load bundler: Could not locate Gemfile or .bundle/ directoryW, [2021-04-29T21:21:26.709311 #15356] WARN -- : Could not load bundler: Could not locate Gemfile or .bundle/ directoryUnable to load this gem. The libzmq library exists, but cannot be loaded.
libzmq library was found at:
["C:\\anaconda3\\Library\\bin/libzmq.dll"]
On Windows:
- Check that you have MSVC runtime installed or statically linked
- Check that your DLL is compiled for 64 bit
WARNING: ::CZMQ::FFI is not available without libczmq.
F, [2021-04-29T21:21:27.062988 #12140] FATAL -- : Kernel died: No session adapter is available
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session_adapter.rb:63:in `select_adapter_class'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:112:in `create_session_adapter'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:12:in `initialize'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `new'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `initialize'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `new'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `run_kernel'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:40:in `run'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/bin/iruby:5:in `<top (required)>'
C:/Ruby30-x64/bin/iruby:23:in `load'
C:/Ruby30-x64/bin/iruby:23:in `<main>'
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session_adapter.rb:63:in `select_adapter_class': No session adapter is available (IRuby::SessionAdapterNotFound)
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:112:in `create_session_adapter'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/session.rb:12:in `initialize'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `new'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/kernel.rb:17:in `initialize'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `new'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:110:in `run_kernel'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/lib/iruby/command.rb:40:in `run'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/iruby-0.5.0/bin/iruby:5:in `<top (required)>'
from C:/Ruby30-x64/bin/iruby:23:in `load'
from C:/Ruby30-x64/bin/iruby:23:in `<main>'
Unable to load this gem. The libzmq library exists, but cannot be loaded.
libzmq library was found at:
["C:\\anaconda3\\Library\\bin/libzmq.dll"]
On Windows:
- Check that you have MSVC runtime installed or statically linked
- Check that your DLL is compiled for 64 bit
#実行環境
環境 | バージョン |
---|---|
OS | Windows 10 |
JupyterLab | 3.0.14 |
Ruby | 3.0.1 x64 |
ZeroMQ | 4.3.2 |
Rubyのディレクトリ
C:\Ruby30-x64
#手順
まず前提として、JupyterLab(もしくはJupyter Notebook)とRubyはインストール済みとして説明します。
手順をまとめると以下になります。
- ZeroMQのダウンロード
- ZeroMQのdllをRubyのディレクトリにコピー
- ffi-rzmqのインストール
- iRubyのインストール
- iRubyの登録
##1. ZeroMQのダウンロード
ZeroMQからライブラリをダウンロードして、zipファイルを展開します。
私の環境では「Visual Studio 15 2017 x64」を選択しました。
##2. ZeroMQのdllをRubyのディレクトリにコピー
1.展開したディレクトリ内のlibzmq-v141-mt-4_3_2.dllの名前をlibzmq.dllに変更します。
libzmq-v141-mt-4_3_2.dll -> libzmq.dll
ダウンロード時のファイル名はバージョンによって変わります。
2.libzmq.dll、libsodium.dllをRubyのインストールディレクトリのbinへコピーします。
私の環境の場合は「C:\Ruby30-x64\bin」にコピーします。
##3. ffi-rzmqのインストール
1.ZeroMQをRubyで使用するためのGemをインストールします。
コマンドプロンプトで以下のコマンドを実行します。
gem install ffi-rzmq
2.動作確認
下記コマンドを実行してtrueとなれば、インストール完了です。
> irb
irb(main):001:0> require "ffi-rzmq"
=> true
##4. iRubyのインストール
以下のコマンドを実行します。
gem install iruby
##5. iRubyの登録
以下のコマンドを実行します。
iruby register --force
#JupyterLab起動
コマンドプロンプトで以下のコマンドを実行してJupyterLabを起動します。
jupyter lab
JupyterLabでRubyのコードが実行できれば完了です。
以上で設定完了です。