手元のWindowsにPythonの実行環境を用意したいけれども、余計なアプリやライブラリをインストールしたくないという場面は以外とある。そこで、WSLとAlpineを使って最小のPython実行環境を構築してみよう。
Windowsではいろいろな環境でPythonを動かせる
Windows上でPythonを動かそうと思った場合、いろいろな選択肢が存在する。
まず、Python公式(https://www.python.org/)が用意しているインストーラーを使う方法がある。インストーラーをダウンロードして、インストーラーの指示に従うだけなので初心者に優しい方法だ。多くのPython指南書もこの方法が楽なので推している。
また、公式以外にも、Anacondaが提供しているパッケージ(こちら)を使う方法もある。これは、機械学習などの用途で使うパッケージを全部インストーラーに詰め込んだ全部入りのパッケージだ。最初から便利なライブラリが入っているので手間がない。
加えて、Windows上でLinuxを実行できるWSL(Windows Subsystem for Linux)を使って、Pythonを動かすことができる。今回解説するのはこの方法だ。
WSLについて
WSLを使うと、Windowsの環境内で、Linuxのツールやアプリを直接利用できる。なお、WSL上でPythonを実行することには多くのメリットがある。
WSLはWindowsと独立した環境として動作するため、実行環境を分離することができる。これにより、セキュリティ上のリスクを軽減し、環境間の干渉を避けることができる。
また、多くの高度な開発ツールやライブラリはLinuxを対象に作らているため、Pythonで何か開発する場合には、WSLを活用した方が便利な場面も多い。
さらに、WSLはWindows上で仮想的にLinuxを動かすことになるため、簡単な操作で環境を丸ごと複製したり、削除したりできるため、使い勝手が良いのが大きなメリットだ。
Alpine Linuxについて
次に、Alpine Linuxについても紹介しておこう。Alpine Linuxの最大の特徴は、非常に軽量で最小限のリソースで動作させることができる点にある。そのWebサイトでも「Small, Simple, Secure(小さく簡素でセキュア)」と大きく謳っている。
そして、なんと、執筆時点の最新バージョン3.20で、配布ファイルは3.32MBしかない。これだけ小さいと何もできないだろうと思うかもしれないが、apkという専用のパッケージ管理システムがあり、好きなパッケージを手軽にインストールできる。数多くのパッケージが登録されており、PythonやRuby、PHP、Go、Rustなど有名なアプリであれば、apkを通して手軽にインストールできる。
そのため、AlpineはちょっとPythonを実行したいだけの人、メインのWindows環境とは切り離しておきたい人、実行環境をできるだけ小さいものにしたいと思っている人にぴったりの環境だ。
WSLとAlpineをインストールしよう
それでは、WSLとAlpineをインストールする方法を紹介しよう。Windowsの初期状態ではWSLが無効の状態になっているが、次の手順で手軽にWSLを有効にできる。なお、Microsoftもこちらで公式に手順を公開しているので、もし下記手順でうまくいかなければそちらを参考にすると良いだろう。
【手順1】WSLをインストール
まず、PowerShellを管理者権限で起動しよう。そのために、画面下部にあるWindowsのアイコンをクリックし、Windowsメニューを表示しよう。次の画面のように(1)で画面上部の検索ボックスで「powershell」を検索しよう。(2)でPowerShellを選び、(3)の画面が出たら、「管理者として実行する」をクリックしよう。(この画面は、Windows11のものだが、Windows10でもほとんど同じような操作で起動できる。)
そして、PowerShellが起動したら、以下のコマンドを実行しよう。下記のコマンドを入力して[Enter]キーを押すとコマンドが実行される。
wsl --install
すると、WSLがインストールされるので、その後で、Windowsを再起動しよう。
【手順2】Alpine Linuxのtarファイルをダウンロード
この時点で、Microsoft Storeから、UbuntuやOpenSUSE、FedoraなどのLinuxディストリビューションを手軽にインストールできる。しかし、多くのディストリビューションは、インストールサイズが大きい。Ubuntu 24.04 LTSのイメージはインストール直後でも1GBを超えている。そこで、Alpine Linuxの出番だ。配付ファイルを展開しても7.5MBしかない。
それでは、WebサイトからAlpine Linuxのアーカイブをダウンロードしよう。こちらのAlpine Linuxのページから「MINI ROOT FILESYSTEM」にある「x86_64」をクリックしてダウンロードしよう。すると、「alpine-minirootfs-3.20.0-x86_64.tar.gz」のような、ファイル名のtarファイルがダウンロードフォルダにダウンロードできる。
そして、PowerShellに戻って、下記のようなコマンドを実行しよう。これにより、WSLにAlpineがインストールできる。コマンド末尾のtar.gzファイル名は、バージョンにより変わるためダウンロードしたファイルの名前を参照して書き換えよう。フォルダがない場合にはC:\Users\ユーザー以下にwslフォルダ、そのなかにalpineフォルダをつくろう。
wsl --import Alpine $HOME\wsl\alpine $HOME\Downloads\alpine-minirootfs-3.20.0-x86_64.tar.gz
このコマンドの書式は「wsl --import (名前) (インストール先) (tar.gzファイル)」となる。
【手順3】Alpine Linuxを起動する
インストールができたら、Alpineを起動しよう。下記のコマンドを実行することで、Alpine Linuxが起動する。
wsl -d Alpine
Alpineが起動したら「cat /etc/os-release」コマンドを実行してみよう。Alpineのバージョンが表示されます。
AlpineにPythonをインストールしよう
Alpineが実行できたら、いよいよPythonをインストールしよう。Alpineではapkコマンドを利用してパッケージを管理できる。下記のコマンドを実行することでシステムを最新の状態にできる。
apk update
apk upgrade
続いて、Pythonをインストールしよう。
apk add python3
apk add py3-pip
以上でPythonのインストールは完了だ。インストールしたバージョンを確認してみよう。
python3 --version
上記コマンドの結果として「Python 3.12.3」と表示された。原稿執筆時点で、Python公式で配布されているバージョンが「3.12.4」であることを考えると、ほぼ最新のPythonがインストールできたことになる。もしも、任意のバージョンを選んでインストールしたい場合には、pyenvなどのツールを使うと良いだろう。
プログラムを作成して実行しよう
WSLが素晴らしいのは、WindowsとLinuxを行ったり来たりしながら利用できる点にある。Alpineの/mnt/c以下にWindowsのCドライブがマウントされる仕組みとなっている。また、Windows上でエクスプローラーを起動し、Linux > Alpineと選んでいくと、Alpine内のファイルシステムにも手軽にアクセスできる。
ちなみに、Alpineを利用している時に、以下のようなコマンドを実行することで、AlpineからWindowsのエクスプローラーを起動できる。
/mnt/c/Windows/explorer.exe .
また、Windows標準のメモ帳で、Alpine内のファイルを開くことも可能だ。以下のコマンドを実行すると、メモ帳でhello.pyを編集できる。
/mnt/c/Windows/notepad.exe hello.py
せっかくなので、hellp.pyを以下のように編集してみよう。このプログラムは、2024年7月のカレンダーを表示する。
import calendar as cal
print(cal.month(2024,7))
プログラムを保存したら、Alpineに戻って、下記のコマンドを実行しよう。
python hello.py
すると、Pythonのプログラムが実行されて、次のように2024年7月のカレンダーを表示する。
このように、WSL上でAlpineを使う場合、既存のWindowsアプリと連携して作業ができるため、とても便利だ。コマンドラインでの操作が苦手という人でも、少しずつ慣れていくことができるだろう。