我试图在现有的多用户jupyterhub安装中设置一个ruby内核。它在我所有的测试中都有效,除了nyaplot创建的绘图(我能在iruby中找到的唯一有效的绘图包)没有出现在笔记本上。例如,以下代码(来自nyaplot教程之一)没有错误(甚至在syslog文件中也没有),但没有绘图:
require 'nyaplot'
plot = Nyaplot::Plot.new
sc = plot.add(:scatter, [0,1,2,3,4], [-1,2,-3,4,-5])
color = Nyaplot::Colors.qual
sc.color(color)
plot.show # show plot on IRuby notebook
背景:
以下是我如何设置iruby在jupyterhub运行。我给出了整个过程,这样(a)你就可以发现是否有遗漏,(b)你就知道如果你说“把这个添加到gemfile”之类的话,你就必须告诉我把gemfile放在哪里,因为jupyterhub并没有运行特定目录中的iruby。
操作系统是centos 7.3。由于ruby的默认版本太旧,无法运行iruby,因此我使用ruby install安装了一个ruby版本:
wget -O ruby-install-0.6.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.6.1.tar.gz
tar -xzvf ruby-install-0.6.1.tar.gz
cd ruby-install-0.6.1
make
make install
ruby-install ruby 2.3.4
(我使用的是ruby 2.3,而不是2.4,因为结果发现sciruby full的至少一个组件还不能与2.4一起工作。)安装之后,有消息说ruby安装在/opt/rubies/ruby-2.3.4中。
接下来是软件包安装。
我必须确保主目录中没有安装任何内容,因为在多用户系统中,其他用户无权访问主目录的文件。下面列出了我最终安装的所有软件包,以尝试解决此问题:
export RUBYDIR=/opt/rubies/ruby-2.3.4
export PATH=${RUBYDIR}/bin:$PATH
export LD_LIBRARY_PATH=${RUBYDIR}/lib:$LD_LIBRARY_PATH
export GEM_HOME=${RUBYDIR}
export GEM_PATH=${RUBYDIR}
gem install --no-user-install cztop rbczmq iruby
gem install --no-user-install pry pry-doc awesome_print gnuplot rubyvis nyaplot
gem install --no-user-install sciruby-full
gem install --no-user-install zeromq ffi-rzmq gnuplotrb
接下来是将iruby内核安装到jupyterhub中。
在查看了“
iruby register --force
”的结果后,我创建了文件:{"argv":[
"/usr/local/bin/jupyter-ruby-env.sh",
"{connection_file}"
],
"display_name":"Ruby",
"language":"ruby"
}
在/usr/local/bin/jupyter-ruby-env.sh中:
#!/usr/bin/bash -l
export RUBYDIR=/opt/rubies/ruby-2.3.4
export PATH=${RUBYDIR}/bin:$PATH
export LD_LIBRARY_PATH=${RUBYDIR}/lib:$LD_LIBRARY_PATH
export GEM_HOME=${RUBYDIR}
export GEM_PATH=${RUBYDIR}
exec ${RUBYDIR}/bin/iruby kernel $@
正如我所说的,所有这些都适用于基本的ruby:我可以运行在ruby教程中找到的代码。我唯一得不到的就是阴谋。我安装的所有其他jupyterhub内核(如python、sagemath、julia)在绘图上都没有问题。
有什么想法吗?
最佳答案
我对Jupyterhub了解不多。
但是nyaplot已经好几年没有更新了。
如果要在iruby中生成绘图,请尝试这些项目。
https://github.com/ruby-numo/numo-gnuplot
https://github.com/zach-capalbo/iruby-plotly
https://github.com/SciRuby/daru-view
以下项目是实验性的。
https://github.com/red-data-tools/charty
https://github.com/SciRuby/rubyplot