Python+Kivy入門

Buildozerのインストール方法 Python3.12対応完全手順(Windows11) 

この記事は約17分で読めます。

KivyアプリをBuildozerライブラリでAndroidアプリやiOSアプリを作成することができます。WSL2でLinux環境の構築し、Python3.12とBuildozerのインストール手順を解説します。エラーが多発して上手くいかない方はこの記事のインストール方法を試してみてください。手順通りに進めれば問題ないはずです。

Buildozerとは

BuildozerはKivyアプリケーションをAndroidやiOSのモバイルアプリ用のパッケージに変換するライブラリです。AndroidアプリはAPK形式またはAAB形式、iOSアプリはIPA形式としてパッケージ化するために使用します。

BuildozerはLinux OSとmac OSで動作します。Windowsで使用する場合はLinuxの仮想環境を構築するか、Windows上でLinuxを実行できるMicrosoftが提供しているWSLを使います。(Windows Subststem for Linux)

WSLを使う

WSLは基本的にコマンド操作になりますが、フォルダーやファイルへアクセスする際はWindowsのエクスプローラーが使えます。アクセス制限がかかっているフォルダーもありますが今回のように特定の場合のみに使用したい時は手軽に使えて便利です。

WindowsエクスプローラーのUbuntuのフォルダー

WSLは1と2が提供されています。WSL2ではOSのGUI操作やアプリケーションのみのGUI操作も可能です。しかし、OSのGUI操作はPCのスペックやグラフィックボードの関係で動作させるのが難しい場合があります。このGUIは完全なものではないので完全なGUIでLinuxを使用したい場合は仮想マシン(VirtualBoxやVMware)を構築することをお勧めします。

Buildozerの環境構築

色々検証した結果今回は下記の環境で構築します。Buildozerはインストール自体はそれほど苦ではありません。しかしインストールが完了したと安堵しても、依存関係(関連するライブラリ)が足りなかったり、設定ファイル(specファイル)の記述を間違えているとエラーが多発してファイルを作成できません。環境が同じであれば以下の手順通りに行うことでモバイルアプリのファイル変換はできると思います。

  • Windows11
  • WSL2
  • Ubuntu22.04.5
  • Python3.12.7
  • Buildozer1.5.1dev0

他のバージョンを試してみたい方はインストール時の検証メモを残したのでそちらも参考にしてみてください。

WSL2インストール

Windows10では手順が異なりますので注意してください。また、WSL2ではデフォルトのインストールオプションなしにした場合、Ubuntu24.4.1(現時点で)がインストールされますが、今回はUbuntu22.4.5をインストールします。バージョン24ではBuildozerのインストールはおそらく難しいです。

WSL2のインストール手順
  • Step1
    Windowsスタートボタンを右クリックして[ターミナル(管理者)]を実行する

    PowerShellが起動します。

    PS C:\Users\user> 
  • Step2
    WSL2のインストール

    wslコマンドを実行する。installオプションにUbuntuのバージョンをしています。

    wsl --install -d Ubuntu-22.04
  • Step3
    Ubuntuログインユーザー名の設定

    ユーザー名の入力を求められるので、ログインユーザー名を入力します。※メモを取るなどして忘れないようにして下さい。

    Enter new UNIX username: 
  • Step4
    Ubuntuログインパスワードの設定

    パスワードの入力が求められるのでパスワードを入力します。Ubuntuではパスワード規制のため8文字以上にしてください。大文字、小文字、数字を混在させたパスワードが推奨されています。短いパスワードを設定すると後で認識されないのでアンインストールする羽目になるので注意してください。※メモを取るなどして忘れないようにして下さい。

    New password:

    再度パスワードの入力が求められるので同じパスワードを入力します。

    Retype new password:
  • Step5
    sudo権限を持つユーザーが作成される

    下記のように表示が変わればインストールが完了し、sudo権限を持つユーザーが作成されています。このユーザーはWindouwsで管理者として実行するのと同じです。この状態がUbuntuのターミナルモードです。。

    ユーザー名@PC名:~$ 
  • Step6
    パッケージの最新情報を取得する

    Ubuntuのパッケージの最新情報を取得します。以降Ubuntuターミナルモードで実行してください。

    sudo apt update

    途中で確認のメッセージが表示されるので「y」を入力し「Enter」を押します。

    [sudo] password for user:
  • Step7
    最新のパッケージをインストールする

    Ubuntuのパッケージを更新します。オプション[-y]はインストールの確認をスキップします。かなりの量のパッケージがインストールされるので、オプション[-y]はつけた方が良いです。

    sudo apt upgrade -y

Ubuntuのターミナル画面の起動方法

Windowsスタートボタンを右クリックして[ターミナル(管理者)]を実行し、メニューから「Ubuntu」を選択します。

Power shellのUbuntuメニュー
Power shellのUbuntu画面

Ubuntuに標準インストールされているPython

Ubuntuでは標準でPythonがインストールされています。Ubuntu 22.04.5ではPython3.10.12が[usr/bin]にインストールされています。そのバージョンでも良ければそのまま使えると思いますが検証はしていません。UbuntuではPythonを他のツールなどに使用しているらしいので、これはそのままにして新たにPython3.12をインストールします。

UbuntuにPythonをインストールする

Linuxのインストールコマンド(apt install)からPyhtonをインストールすることもできますが3.12.7がUbuntuリポジトリにはないためパッケージからインストールします。

Pythonのインストール手順
  • Step1
    Pythonの依存関係のパッケージをインストールする

    ターミナルはUbuntuモードで実行してください。

    Pythonをインストールするために必要なパッケージをインストールします。

    以下は必要と思われるパッケージのリストです。(必要ないパッケージもあるかもしれません)。

    • build-essential: C/C++コンパイラ(Pythonをビルドするために必要)
    • zlib1g-dev: 圧縮解凍
    • libgdbm-dev: データベース関連
    • libnss3-dev: セキュリティ関連
    • libssl-dev: SSL/TLS通信
    • libreadline-dev: インタラクティブなコマンドラインの編集機能
    • libffi-dev: 外部関数インターフェース
    • libsqlite3-dev: SQLiteのサポート
    • libbz2-dev: BZ2圧縮形式をサポート
    sudo apt update
    sudo apt install -y build-essential zlib1g-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libsqlite3-dev wget libbz2-dev
  • Step2
    Python公式サイトからLinux用パッケージのバージョンを調べる

    Python公式サイトからPythonのバージョンを調べてください。今回は3.12のラストバージョンの3.12.7をインストールします。ダウンロードはコマンドから行うのでここではダウンロードしなくて大丈夫です。

  • Step3
    Pythonのダウンロード

    ダウンロードファイルを保存するフォルダーへ移動します。(変更したい場合はパスを変えてください)
    ※Linuxではフォルダーは「ディレクトリ」といいますが本書では「フォルダー」で統一します。

    cd /usr/local/bin

    wgetコマンドでPythonをダウンロードします。違うバージョンをインストールする場合は変更してください。途中でパスワードの入力が求められます。

    sudo wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz

    これで[/usr/local/bin]にダウンロードされました。

  • Step4
    圧縮ファイルを解凍する

    ダウンロードした圧縮ファイルを解凍します。

    sudo tar xzf Python-3.12.7.tgz

    何も表示されませんがおそらく解凍は終わっています。
    解凍したフォルダーへ移動します

    cd Python-3.12.7
  • Step5
    Pythonをインストール

    インストール環境をチェックしてビルド後インストールします。インストール場所を指定したい場合は[–prefix=PREFIX]オプションを指定します。

    sudo ./configure --enable-optimizations
    sudo make -j $(nproc)
    sudo make altinstall

    これで[/usr/local/bin]にPythonがインストールされました。ダウロードしたファイルが残ってるので気になる場合はrmコマンドで削除してください。

    sudo rm -r /usr/local/bin/Python-3.12.7.tgz
  • Step6
    インストール確認

    Pythonのバージョンを確認します。

    python3.12 --version

    インストールしたバージョンが表示されているか確認してください。

  • Step7
    デフォルトのPythonバージョンを変更する

    update-alternativesコマンドでPython3.10と3.12を登録して切り替えられるようにします。

    sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 2
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
    sudo update-alternatives --config python3
  • Step8
    既定のPythonを登録する

    規定で3.12を使用するようにします。

    下記のように表示がされるので、「0」を入力し「Enter」を押します。

      Selection    Path                       Priority   Status
    ------------------------------------------------------------
      0            /usr/local/bin/python3.12   2         auto mode
      1            /usr/bin/python3.10         1         manual mode
    * 2            /usr/local/bin/python3.12   2         manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 

  • Step9
    python3コマンドの確認

    python3コマンドで3.12が使えるか確認します。これができないと後で上手くいかないので気を付けてください。

    python3 --version

    バージョンが3.12.7と表示されていることを確認する

    Python 3.12.7

Buildozerに必要なパッケージのインストール

Buildozerに必要なパッケージをインストールします。

Buildozerに必要なパッケージインストール手順
  • Step1
    Buildozerに必要なパッケージ

    下記は必要そうなパッケージになります。(必要ないパッケージも含まれてるかもしれません)

    • Java Development Kit (JDK):AndroidビルドにはJDKが必要
    • Git:PythonパッケージをGitリポジトリから直接インストールする
    • Python Dev ヘッダー:Python開発用ヘッダーが必要
    • SDL2 ライブラリ:Kivyが依存するマルチメディアライブラリ
    • Zlib:圧縮に必要なライブラリ
    • Autoconf:Androidの依存関係をビルドする際に必要
    • libtool: Androidの依存関係をビルドする際に必要
    • unzip:zip解凍
    • libncurses5-dev: 画面制御
    sudo apt update
    sudo apt install -y openjdk-17-jdk python3-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev autoconf cmake automake libtool pkg-config unzip zip python3-venv python3-pip libtinfo5 libncurses5-dev

仮想環境の構築

仮想環境を作ります。現時点でpipからBuildozerをインストールすると1.5.0がインストールされますが、Python3.12で非推奨になったライブラリが含まれるのでGitHubから1.5.1dev0をインストールします。

仮想環境構築手順
  • Step1
    仮想環境フォルダを作る

    ユーザーフォルダーへ移動します。このフォルダーは権限のないフォルダーになっていてコンソールのカレントフォルダーになります。下記のようにチルダを入力すると簡単に参照できます。

    cd /home/<ユーザー名>

    cd ~

    venvコマンドで仮想環境フォルダを作ります。ここでは「venv-py312」にしています。

    python3 -m venv <仮想環境フォルダー名>

    python3 -m venv venv-py312

    [home/ユーザー名]に指定したフォルダーが作成されています。

  • Step2
    仮想環境を有効にする

    activateで仮想環境を有効化します。

    source /home/<ユーザー名>/<仮想環境フォルダー名>/bin/activate

    source /home/user/venv-py312/bin/activate

    activateするとコマンドラインの表示部分に「(仮想環境フォルダー名)」が追記され、仮想環境モードになっています。

    (venv-py312) <ユーザー名>@<PC名>:~$

    コンソール画面を閉じると仮想環境のセッションが切断されるので、コンソールを立ち上げる度にactivateする必要があります。

    次の章でactivateされた状態でターミナルを起動するショートカットの作成方法を紹介しています。

  • Step3
    pipパッケージの更新

    以降仮想環境モードで実行してください。

    pipライブラリを最新の状態に更新します。

    pip install --upgrade pip
  • Step4
    buildozerと関連ライブラリのインストール

    buildozer1.5.1.dv0と必要なライブラリをインストールします。

    pip install kivy cython python-for-android
    pip install git+https://github.com/kivy/buildozer.git
    pip install --upgrade buildozer python-for-android
  • Step5
    インストールされているライブラリの確認

    正常にインストールされたかを確認します。

    pip list

    下記のように表示されます。

    Package            Version
    ------------------ -----------
    appdirs            1.4.4
    build              1.2.2.post1
    buildozer          1.5.1.dev0
    certifi            2024.8.30
    charset-normalizer 3.4.0
    colorama           0.4.6
    Cython             0.29.37
    docutils           0.21.2
    idna               3.10
    Jinja2             3.1.4
    Kivy               2.3.0
    Kivy-Garden        0.1.5
    MarkupSafe         3.0.2
    packaging          24.2
    pexpect            4.9.0
    pip                24.3.1
    ptyprocess         0.7.0
    Pygments           2.18.0
    pyproject_hooks    1.2.0
    python-for-android 2024.1.21
    requests           2.32.3
    setuptools         59.6.0
    sh                 1.14.3
    toml               0.10.2
    tomli              2.2.1
    urllib3            2.2.3
  • Step6
    仮想環境モードを終了したい場合

    仮想環境モードから抜けるにはdeactivateコマンドを実行します。

    deactivate

activate状態のWSLターミナルのショートカットを作成する

いちいち仮想環境をactivateするのが面倒なので、仮想環境をactivateした状態のWSLターミナルのショートカットの作成方法を説明します。power shell本体から起動した場合もactivate状態で起動されるので任意で行ってください。

ショートカット作成手順
  • Step1
    ショートカットのアクセス元を入力

    デスクトップなどの任意の場所で右クリック > 新規作成 > ショートカットの作成画面を起動し下記を入力し、[次へ]ボタンを押す。

    C:\Windows\System32\wsl.exe -d Ubuntu-22.04
    ショートカット作成画面1
  • Step2
    ショートカットの名前を入力

    任意のショートカットの名前を入力する。

    ショートカット作成画面2
  • Step3
    作業フォルダーの入力

    作成されたショートカットを右クリック > プロパティを選択し、[作業フォルダー]に下記を入力し、[適用]ボタンを押す。(Ubuntuのユーザーフォルダーを入力します)

    \\wsl.localhost\Ubuntu-22.04\home\<ユーザー名>
    ショートカット作成画面3。作業場所の項目を入力
  • Step4
    アイコンの設定

    再度ショートカットのプロパティ画面を起動し、[アイコンの変更]ボタンを押し、[このファイル内のアイコンを検索]に下記を入力し[Enter]を押す。

    今回はLinuxのペンギンに設定しますが好きなアイコンを設定してください。

    C:\Windows\System32\wsl.exe

    [下の一覧からアイコンを選択]欄にペンギンが表示されるので選択して[OK]ボタンを押す。

    ショートカット作成のアイコンの設定
    アイコンが設定されたショートカット
  • Step5
    WindowsのエクスプローラーからUbuntuにアクセス

    WindowsのエクスプローラーからUbuntuにアクセスし下記のフォルダーへ移動し、bashファイルを開く。

    VSCodeで開いた場合、警告のメッセージが表示されますが[許可]ボタンを押してください。

    \wsl.localhost\Ubuntu-22.04\home\<ユーザー名>

    WindowsエクスプローラーのUbuntuフォルダー
    bashファイルを選択
  • Step6
    bashファイルを編集

    bashファイルの一番最後の行に下記を追記して保存する。

    「venv-py312」の部分は仮想環境フォルダーの名前になります。違う名前にした場合は、2か所変更してください。

    # 仮想環境のactivate
    if [ -d "$HOME/venv-py312/" ]; then
        source "$HOME/venv-py312/bin/activate"
    fi
  • Step7
    ショートカットを起動

    作成したショートカットから起動して、仮想環境モードになってるか確認します。

WSL2を削除したい場合

WSLを削除したい場合は簡単に行えます。Ubuntu上に有るデータは全て消去されるので大事なデータはWindowsの方へ移動してください。

WSL2の削除手順
  • Step1
    Poser Shellを起動

    Windowsスタートボタンを右クリックして[ターミナル(管理者)]からPower shellを起動し、下記のコマンドを実行し「登録解除。この操作を正しく終了しました。」のメッセージを確認する。

    ※Ubuntuのバージョンを指定しないでインストールした場合は「ubuntu」のみになります。

    wsl --unregister ubuntu-22.04
  • Step2
    インストールされているアプリ画面の起動

    Windowsスタートボタンから[設定] > 左側メニューの[アプリ] > [インストールされているアプリ] 画面を起動する。

  • Step3
    Ubuntuの削除

    ➀検索で「ub」と入力する。
    ➁[…]マークのボタンを押す。
    ➂[アンインストール]を選択する。
    ④「削除しました」の旨のメッセージを確認する。

    インストールされているアプリ画面のUbuntu選択

最後に

MSL2でのLinuxとPythonの環境構築について説明しました。一つのライブラリを試したいがために4日も費やしてしまいました。そしてUbuntuデビューして4日目です!言い方におかしなところがあるかもしれませんがご容赦ください。次回はBuildozerを使ってAndroidアプリのAPKやAABの作成方法について説明します。

Comment

タイトルとURLをコピーしました