【发布时间】:2017-11-17 01:51:03
【问题描述】:
我正在尝试在现有的多用户 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)所以你知道如果你说“将 [this] 添加到 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/红宝石/红宝石-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”的结果后,
我创建了文件/usr/local/share/jupyter/kernels/ruby:
{"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)在绘图时都没有问题。
有什么想法吗?
【问题讨论】:
-
“我是 Ruby n00b。”?不要那样说。我们不在乎您的专长是什么,我们希望您研究您的问题,尝试多次,然后写一个清晰简洁的问题。请参阅“How much research effort is expected of Stack Overflow users?”和“Grovelling is not a substitute for doing your homework”。很明显,您尝试过,但方法可以改进。
-
我确实做了功课,或者至少我认为我做了。由于我上面提到的原因,我能找到的唯一其他类似问题的参考似乎没有提供我可以使用的解决方案:groups.google.com/forum/#!topic/sciruby-dev/wcnFC824nJg 在我的系统中可以找到的任何日志中都没有错误消息,没有句柄我可以用来跟踪执行,我看不到其他任何行为都会成为跟踪问题所在的钩子。还有其他一些我忽略的研究领域吗?
标签: ruby graphics centos7 jupyterhub iruby