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コマンドを使用できるように、この問題を解決する方法はありますか?
======== アップデートと解決策 ======
Engineermnky のおかげで解決策が見つかりました。
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 routes
の
execute_console('rails routes')
出力は、文字列出力なしで期待どおりです。
構文エラーも期待どおりに出力されます。