来年こそは LT しようぜ!

Posted on Sat 14 December 2019 in misc

このポストは Python駿河 勉強会 #8 〜Pythonの進化を振り返ってみよう!〜 の LT を元に作り直したものです。

「来年こそは LT しようぜ!」という題目で話をしました。良いツールを見つけたから、これから LT 頑張ろうという話です。全体的に雑な内容になっていますが、これから使おうという人の書いたものなので、その点、ご理解いただけたらと思います。

RISE - Jupyter Notebook で HTML スライドを作るツール

RISE https://rise.readthedocs.io

使い方

インストールの方法です。 RISE が Jupyter に依存しているので、 Jupyter を明示的にインストールする必要はありません。 Anaconda を使っている場合は、 conda でインストールしてください。

pip install RISE
jupyter-nbextension install rise --py --sys-prefix
jupyter-nbextension enable rise --py --sys-prefix

起動は Jupyter Notebook を起動するだけなので、 jupyter notebook です。オプション等は任意で。

起動してノートブックを開いた後、メニュー View > Cell Toolbar > Slideshow を選択するとセルの右端に Slide Type が現れます。 Slide にするとスライドになります。

コードを実行できる

Jupyter が動いているので、コードを実行することができます。コードが書いてあるスライドで SHIFT + ENTER を押すと実行結果が表示されます。

スライドを作る際、 Slide Type は - にしておくと、前のスライドを同じスライドに表示されるようです。

Doker で動かしてみました

特に Docker を使う必要はないのですが、勉強がてら Docker で動かしてみました。

Dockerfile です。

FROM python:latest
RUN python3 -m pip install --upgrade pip RISE
RUN jupyter-nbextension install rise --py --sys-prefix
RUN jupyter-nbextension enable rise --py --sys-prefix
CMD ["jupyter", "notebook", "--allow-root", "--ip=0.0.0.0", "--port=8888", "--notebook-dir=/tmp/share/"]

docker-compose.yml です。

version: "3"
services:
  jupyter:
    build:
      context: .
      dockerfile: Dockerfile
    command: ["jupyter", "notebook", "--allow-root", "--ip=0.0.0.0", "--port=8888", "--notebook-dir=/tmp/share/"]
    container_name: jupyter
    ports:
      - 8888:8888
    volumes:
      - ./notebooks/:/tmp/share/

Dockerfiledocker-compose.yml を同一ディレクトリにおいてください。ノートブックを保存するディレクトリも同一ディレクトリに、 notebooks の名前で作っておきます。そのうえで、 docker-compose up 。コンソールに URL が表示されるので Web ブラウザで開きます。

Vagrant を使えば Windows 10 Home Edition でも動かせる

Docker for Windows は Home Edition では動かないはずです。 Hyper-V が無いからです。 VirtualBox などで仮想マシンを作る必要があります。 Vagrant を使うとVirtualBox で簡単に仮想マシンが作れます。 VirtualBox と Vagrant をインストールしておいてください。

Vagrantfile です。 Ruby 製なのが癪ですね。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure "2" do |config|
  config.vm.box = "bento/ubuntu-18.04"

  config.vm.network "forwarded_port",
    guest: 8888, host: 8888, host_ip: "127.0.0.1"

  config.vm.provision "docker"
  config.vm.provision "shell", inline: "apt-get --yes install docker-compose"
  config.vm.synced_folder ".", "/vagrant"
end

Vagrantfile を先述の Docker ファイル群と同一ディレクトリに配置します。 vagrant up で仮想マシンを構築・起動。 vagrant ssh で仮想マシンにログイン。 vagrant halt で仮想マシンを停止。不要になったら、 vagrant destroy で破棄できます。

仮想マシンの /vagrant がホストマシンと共有されているので、 cd /vagrant した後、先述の手順で Docker 起動します。 おしまい

これから RISE を使って LT をしようという話です。これが初めての使用なので、たいしたノウハウがありません。使ってみたいときは、ご自身で情報を探してみてください。

私は次のページを参考にしました。

LT しましょう。勉強会が楽しくなりますよ。多分。