我在我的 jupyter 笔记本中使用 iruby,内核按预期工作并接受所有类型的 ruby 语法
不幸的是 %%bash 命令会导致错误。所以在我的笔记本中没有可用的控制台命令。如果我切换回基本的 python 内核,%%bash 命令会按预期工作。
我怎样才能实现 bash 命令在 iruby 内核中工作?有什么我忘记安装或设置的吗?
我在 Ubuntu 20.04 中使用以下设置:
我还使用 rvm 来管理我的 ruby 版本。
基本设置
sudo apt install python3-pip python3-dev
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
pip install jupyter
安装 iruby
gem install ffi-rzmq
gem install iruby --pre
iruby register --force
设置和启动
rvm use ruby-2.7.2
mkdir ~/ruby_notebook
virtualenv ~/ruby_notebook/ruby_env
source ~/ruby_notebook/ruby_env/bin/activate
jupyter notebook --notebook-dir ~/ruby_notebook
任何想法如何解决这个问题,以便我可以使用 bash 命令?
======== 更新和解决方案 ======
感谢engineersmnky,我找到了解决方案:
就像在 python 笔记本中我想实现以下输出:
使用命令%x(ls -la)
我得到一个执行,但输出看起来不同
因此,为了获得正确的输出,我添加了以下内容:
%x(ls -la).each_line(chomp: true){|s| p s}
这接近输出,但随后是笔记本中的执行字符串输出。
所以我的最终解决方案,也是为了让执行命令不那么复杂,我现在在笔记本的开头使用了一个方法。
def execute_console(input)
%x(#{input}).each_line(chomp: true){|s| p s}
return nil
end
这样我就可以使用像这样的rails在我的笔记本中执行特殊命令
rails routes
在
execute_console('rails routes')
并且输出与预期的一样,没有任何字符串输出。
语法错误也会按预期打印出来。