5

我是 macOS Sierra 10.12.3 上使用 Homebrew 的 Ruby。我用 pip install 安装了 jupyter,用 gem install 安装了 iruby

当我运行iruby notebook服务器时,服务器启动正常,但在创建新笔记本时,内核总是被以下日志杀死。

/usr/local/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:18:in `initialize': uninitialized constant IRuby::Kernel::Session (NameError)
    from /usr/local/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:70:in `new'
    from /usr/local/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:70:in `run_kernel'
    from /usr/local/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:34:in `run'
    from /usr/local/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/bin/iruby:5:in `<top (required)>'
    from /usr/local/bin/iruby:22:in `load'
    from /usr/local/bin/iruby:22:in `<main>'

我见过其他问题,但错误信息有所不同。

4

3 回答 3

2

我发现在带有 Gemfile 的项目文件夹中运行 iRuby 时出现了这个特定错误,并在这个问题中提到。启动 iruby 以运行 register 命令以及将库添加到 Gemfile 时,您可能还会看到警告。

在您的 Gemfile 中添加irubyffi- rzmq:

gem 'iruby'
gem 'ffi-rzmq'

然后运行:

$ bundle install

安装完毕后,继续运行 iruby:

$ iruby notebook

启动 iruby 后,您应该会看到没有未初始化常量 IRuby::Kernel::Session (NameError)错误的日志,并且内核不会死机。

即使您可能不需要,如果由于某种原因您仍然遇到问题,则可能值得在捆绑后重新注册内核:

$ iruby register --force

希望这对某人有帮助!

于 2018-01-30T20:37:41.840 回答
1

github 上的iRuby 文档建议使用 Anaconda 并使用 rbenv 将 Ruby 环境设置为 2.4.1。我在试验 iRuby 内核时遇到了同样的问题。

从自述文件:

苹果电脑

我推荐使用 Anaconda 进行安装。

之后,运行以下命令。

brew install rbenv automake gmp libtool wget
rbenv install 2.4.1
rbenv global 2.4.1  
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
brew install zeromq
brew install czmq --HEAD
gem install cztop iruby
iruby register --force
于 2017-04-05T22:00:52.553 回答
1

我不确定内核为什么会死,但我怀疑它与 zeromq 套接字接口有关。在我的 Mac 上,我已确认以下工作正常:

也许 brew、ruby 和 python 安装了一个单独的 zeromq 实例。

IRuby 0.2.9
Ruby 2.1.0
自制 1.1.12

我没有时间调查它。

于 2017-04-07T14:59:25.977 回答