curses
を使ったプログラムのデモとハンズオンを行おうと考えていたが、よく考えるとWindows環境で実行する人は curses
を使えない。手元のマシンに対してフォントやツールをインストールできず絵文字も表示できない環境だと、デモ用のプログラムの楽しさが半減してしまう。何を前提とできるかは分からないけれど、その問題をとりあえず何とかするために Vagrant
で curses
が使え、絵文字が表示できるバーチャルマシンの環境を準備する事にした。
VirtualBoxを準備する
Vagrantを準備する
公式ページに従い Vagrant
をインストールする3。ここではHomebrewを使う。
brew install hashicorp/tap/hashicorp-vagrant
Vagrantfileを作る
vagrant init
コマンドを使い Vagrantfile
を作成する4。
vagrant init
生成された Vagrantfile
を書き換える。今回は Ubuntu
を使用する。
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64"
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
config.vm.provision :shell do |shell|
shell.privileged = true
shell.path = "provision.sh"
shell.reboot = true
end
end
またフォントやGUI環境の初期設定のためのスクリプトも追加する。
provision.sh
sudo apt update -y
sudo apt install -y \
fontconfig \
gnome-session \
gnome-terminal \
python3.10-venv \
language-pack-ja \
fonts-noto-cjk-extra \
fonts-noto-color-emoji
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:
バーチャルマシンを起動する
vagrant up
コマンドを実行し、バーチャルマシンを起動する。
vagrant up
初回起動にはパッケージのインストールなども行われるため時間がかかる。また再起動も行われる。
成功すると VirtualBox
のバーチャルマシンが起動する。その画面に移動するか SSH
でバーチャルマシンに接続する。 vagrant ssh
コマンドを実行すると、鍵の設定などを正しく指定してくれる。
vagrant ssh
cursesが実行できるかを確認する
curses
モジュールが読み込めるかを Python
のインタラクティブシェルで確認する。
import curses
問題がなければimportが行われる。
絵文字などが表示される事を確認する
デモ用に用意したスクリプトを実行し curses
が使えて絵文字も表示される事を確認する。
このスクリーンショットは、VirtualBoxでバーチャルマシンを起動しGUI(GNOME)でターミナルを開き、スクリプトを実行した際の画面を撮影した。