我正在尝试在现有的多用户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)所以你知道如果你说"add this to the 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“的结果之后,
我创建了文件/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)在绘图方面都没有问题。
有什么想法吗?
发布于 2019-09-13 23:18:08
我对JupyterHub了解不多。但是Nyaplot已经有好几年没有更新了。
如果您想在iruby中生成绘图,请尝试以下项目。
以下项目是试验性的。
https://stackoverflow.com/questions/44552756
复制相似问题